|
Categorieën >
PHP & SQL
loginscript werkt niet (Opgelost)
koenvdl – 28/10/2009 21:59 (Laatst gewijzigd op 28/10/2009 22:02)
|
|
offline
|
Nieuw lid
|
guys,
Ik heb volgend script in mijn login.php gezet, toch werkt dit niet en krijg ik steeds de melding Username or Password is wrong.
Hij geraakt nooit in mijn IF.
Kan iemand mij vertellen wat ik verkeerd doe?
<?php
$username = $_POST['username'];
$password = sha1($_POST['password']);
if($username && $password)
{
$connect = mysql_connect('localhost', 'root', '') or die ('Couldn\'t Connect');
mysql_select_db("test") or die ("Couldn\'t Find your database !");
$query = sprintf("SELECT id, username, password FROM users WHERE `username`='%s' AND `password`='%s'",
mysql_real_escape_string($username),
mysql_real_escape_string($password));
$rows = mysql_query($query);
$numrows = mysql_num_rows($rows);
if($numrows)
{
while($row = mysql_fetch_assoc($rows))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
echo("<p>Welcome back $dbusername !</p>");
echo("<a href='logout.php'>Logout</a>");
$_SESSION['username']=$dbusername;
}
else
die("Username or Password is wrong!");
}
?>
<?php $username = $_POST['username']; $password = sha1($_POST['password']); if($username && $password) { mysql_select_db("test") or die ("Couldn\'t Find your database !"); $query = sprintf("SELECT id, username, password FROM users WHERE `username`='%s' AND `password`='%s'", mysql_real_escape_string($username), mysql_real_escape_string($password)); $rows = mysql_query($query); $numrows = mysql_num_rows($rows); if($numrows) { while($row = mysql_fetch_assoc($rows)) { $dbusername = $row['username']; $dbpassword = $row['password']; } echo("<p>Welcome back $dbusername !</p>"); echo("<a href='logout.php'>Logout</a>"); $_SESSION['username']=$dbusername; } else die("Username or Password is wrong!"); } ?>
|
10 antwoorden
|
|
|
offline
|

Crew .NET
|
CODETAGS GEBRUIKEN
|
|
|
|
offline
|
MySQL interesse
|
Tiphint.. tiphint:
Valt je niets op aan de kleurtjes.....?
|
Bart – 29/10/2009 08:52 (Laatst gewijzigd op 29/10/2009 08:52)
|
|
offline
|
PHP expert
|
jaronneke schreef: Tiphint.. tiphint:
Valt je niets op aan de kleurtjes.....? So what? Hij heeft geen enkele syntax error. Slechts een smerige bug in de highlighting van Sitemasters.
@TS:
<?php
$username = $_POST['username'];
$password = sha1($_POST['password']);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$connect = mysql_connect('localhost', 'root', '') or die ('Couldn\'t Connect');
mysql_select_db("test") or die ("Couldn\'t Find your database !");
$query = sprintf("SELECT id, username, password FROM users WHERE `username`='%s' AND `password`='%s'",
mysql_real_escape_string($username),
mysql_real_escape_string($password));
$rows = mysql_query($query);
$numrows = mysql_num_rows($rows);
if($numrows)
{
while($row = mysql_fetch_assoc($rows))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
echo("<p>Welcome back ".$dbusername." !</p>");
echo("<a href='logout.php'>Logout</a>");
$_SESSION['username'] = $dbusername;
}
else
die("Username or Password is wrong!");
}
?>
<?php $username = $_POST['username']; $password = sha1($_POST['password']); if($_SERVER['REQUEST_METHOD'] == 'POST') { mysql_select_db("test") or die ("Couldn\'t Find your database !"); $query = sprintf("SELECT id, username, password FROM users WHERE `username`='%s' AND `password`='%s'", mysql_real_escape_string($username), mysql_real_escape_string($password)); $rows = mysql_query($query); $numrows = mysql_num_rows($rows); if($numrows) { while($row = mysql_fetch_assoc($rows)) { $dbusername = $row['username']; $dbpassword = $row['password']; } echo("<p>Welcome back ".$dbusername." !</p>"); echo("<a href='logout.php'>Logout</a>"); $_SESSION['username'] = $dbusername; } else die("Username or Password is wrong!"); } ?>
Deze code zal wel werken, probeer het eens.
|
|
|
|
offline
|
Nieuw lid
|
Het vreemde is als ik geen username en paswoord meegeef, krijg ik een leeg scherm.
Gebruik ik een username, geeft hij steeds de foutboodschap Username or Password is wrong.
dwz dat ik connectie heb naar mijn database, maar dat ik er niets in kan schrijven of uit kan lezen.
Ik vermoed dus dat mijn $query verkeerd is...
|
|
|
|
offline
|
MySQL beginner
|
Ikzelf heb nog nooit van de sprintf command gehoord..
maar is het niet mogelijk om het wachtwoord om te zetten naar md5 zoals ook in de database is, en deze dan te kijken of ze gelijk zijn aan elkaar???
|
Joost – 31/10/2009 19:00 (Laatst gewijzigd op 31/10/2009 19:01)
|
|
offline
|
PHP expert
|
larssy1 schreef: Ikzelf heb nog nooit van de sprintf command gehoord.. dus? PHP.net: sprintf
@TS: Dump $query eens en gooi hem in phpMyAdmin, en kijken wat dat oplevert
|
|
|
|
offline
|
Nieuw lid
|
Ik zou eens kijken of het wachtwoord wel met sha1 in de db is gezet aangezien dat 1 van de eerste commando's is doe wordt aangeroepen.
$password = sha1($_POST['password']);
Anders moet je eens proberen met
$password = md5($_POST['password']);
|
|
|
|
offline
|
Nieuw lid
|
Hmm,
dit is inderdaad wel een halve oplossing.
wanneer ik $password = $_POST['password']; gebruik werkt dit perfect.
Echter als ik encryptie er wil achtersteken niet meer.
niet met sha1, maar ook niet met md5
|
|
|
|
offline
|

PHP ver gevorderde
|
koenvdl schreef: Hmm,
dit is inderdaad wel een halve oplossing.
wanneer ik $password = $_POST['password']; gebruik werkt dit perfect.
Echter als ik encryptie er wil achtersteken niet meer.
niet met sha1, maar ook niet met md5  vervang anders sprint_f even gewoon voor gewone normale code.
|
|
|
|
offline
|
Lid
|
Probeer is
$password = $_GET['password'];
|
Dit onderwerp is gesloten.
|
|
|