Link to home
Start Free TrialLog in
Avatar of d10u4v
d10u4vFlag for United Kingdom of Great Britain and Northern Ireland

asked on

PHP if not quite working

Hi i have the following PHP script which , after a bit a tweeking isn't working anymore:

//Connect to database

mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());

   
// QUERY
$query = 'SELECT password FROM users1 WHERE email = \''.$_POST['email'].'\' LIMIT 1';
$result = mysql_query($query) or die ('Query failed: ' . mysql_error());
 

$line = mysql_fetch_array($result, MYSQL_ASSOC);
if (!$line) {
    $error = "Email Not Found in Database";
    require_once("forgetpass.php");
}else{  

After an email address has been found the script moves on to Mail the user the password.

What i get is the error "Not Found in Database", even when i know there is an email address.

Where have i gone wrong?

Hope someone can advise...

Anthony
Avatar of steelseth12
steelseth12
Flag of Cyprus image

try print the email before the query to see it is send.

print $_POST['email'];
You should also use mysql_real_escape_string in any form values

$query = 'SELECT password FROM users1 WHERE email = \''.mysql_real_escape_string($_POST['email']).'\' LIMIT 1';

and you can use mysql_fetch_assoc instead of mysql_fetch_array($result, MYSQL_ASSOC);

$line = mysql_fetch_assoc($result);
Avatar of d10u4v

ASKER

the email bit works fine - the only section i altered is the code i included above.  To me it looks as though it should work, but i'm no expert.... ;)

Anthony
Change password to `password` as it is a reserved word in MySql. It's a good idea to use backticks on all of your table and field names. It's even better to avoid using reserved words as field/table names.
$query = 'SELECT `password` FROM `users1` WHERE `email` = \''.$_POST['email'].'\' LIMIT 1';

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of steelseth12
steelseth12
Flag of Cyprus image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of d10u4v

ASKER

I'M SO STUPID!

As soon as you pointed out the $_post and $_get, i look at my form and readlised that i had not renamed my textfield.  As soon as i saw 'email' in you post i realised what i had done, or not done.

Sorry to waste time.

Thank you anyway.

Anthony
Avatar of d10u4v

ASKER

It's not the answer beu i got me looking inthe right place, and made me realise my error.