Kan iemand mij vertellen wat er mis is met het volgende script? Ik ben al een tijdje bezig, maar het wil maar niet lukken...






<?php

include "Templates/Begin_Page.php";

if ($Login_Button == "Login")
if (empty($User))
print "You must enter a username!";
elseif (empty($Pass))
print "You must enter a password!";
else
{
$password = mysql_query('select password from users where username = $User and password = $Pass') //or
//die (mysql_error());
// print $password;
if ($Pass == $password)
{
print "You have succesfully logged in.";
// include "....";
// or
// redirect to My Account (or the like)
}
else
print "Username and Password do not match, try again!";
}
else
{
print "You need to login via the 'Login' item in the Menu.";
}

echo "<BR>";
echo "<BR>";
echo "<BR>";
echo "<BR>";
echo "password:<BR>";
print $password;

include "End_Page.php"

?>





Alvast badankt!
Wel, waar komen de variabelen $Login_Button, $User en $Pass vandaan?
Wat gaat er mis, welke foutmelding(en) krijg je?
offtopic: gebruik liever echo dan print, is sneller
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
include "Templates/Begin_Page.php";

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// superglobals staan default UIT gebruik daarom $_GET, $_POST, $_COOKIE, $_SESSION etc
if (empty($_POST['User']))
{
echo "You must enter a username!";
}
// superglobals staan default UIT
elseif (empty($_POST['Pass']))
{
echo "You must enter a password!";
}
else
{
$result = mysql_query("select password from users where username = '" . $User . "' and password = '" . $Pass . "'") or die(mysql_error());
if (mysql_num_rows($result) > 0)
{
$password = mysql_fetch_assoc($result);
print "You have succesfully logged in.";
// include "....";
// or
// redirect to My Account (or the like)
}
else
{
echo "Username and Password do not match, try again!";
}
}
else
{
echo "You need to login via the 'Login' item in the Menu.";
}

echo "<BR>";
echo "<BR>";
echo "<BR>";
echo "<BR>";
echo "password:<BR>";
echo $password;

include "End_Page.php"

?>

Dit zal waarschijnlijk al een heel stuk beter werken.
Wat was er fout:
Je gaat uit van superglobals
De variabelen in je query werden NIET geparsed

Verder heb ik nog wat haken toegevoegd aan je if / else structuren
Probeer ook een vaste manier van programmeren aan te houden. Gebruik of echo of print en niet allebei. Print is trouwens een functie en die zou je dus zo moeten gebruiken: print('hello world');
Bovenstaand script zal niet werken

- msyql query klopt niet omdat de variabelen $User en $Pass nu niet meer bestaan...
- mysql_fetch_assoc levert een array, het password zul je in dit geval dus moeten opvragen dmv $password['password']
Okay, nu werkt het (op mijn eigen schoonheidsfoutjes na dan)

Hardstikke bedankt!!!

Reageren