PDA

View Full Version : Php ask for help


mazunki
Apr 4, 2012, 01:33 PM
Hi. I have a problem here.
When I write a username that doesn't exist I get no message up on the page.


<?php

$username = $_POST['username'];
$password = $_POST['password'];

if ($username&&$password)
{
$connect = mysql_connect("mysql.<MASKED>.com","<MASKED>","<MASKED>")or die(mysql_error());
mysql_select_db("u875234194_login")or die(mysql_error());
$query = mysql_query("SELECT * FROM members WHERE username='$username'");

$numrows = mysql_num_rows($query)or die(mysql_error());

if ($numrows!=0)
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}

if ($username==$dbusername&&$password==$dbpassword)
{
echo "You're logged in";
}
else
{
echo "Wrong password";
}
}
else
{
die("That user doesnt exist");
}
}
else
{
?>
<script type='text/javascript'>
alert("Please enter user and password");
history.go(-1);
</script>
<?php
}
?>

If I change
if (numrows!=0) to
if (numrows==0) and write a username that does exist, I do get my That user doesn't exist message
else { die("That user doesn't exist")

rpray2007
Apr 4, 2012, 02:21 PM
Change the while loop to this:



while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];


if ($username==$dbusername&&$password==$dbpassword)
{
echo "You're logged in";
break;
}
elseif ($username==$dbusername&&$password !=$dbpassword)
{
echo "Wrong password";
break;
}
}


The problem is that you are loading the dbusername/dbpassword with an empty row since you are checking after the while loop is over.