-1

I have this code that processes a user then redirects them to the user homepage.

<?php
    $username = $_POST['username'];
    $password = $_POST['pwd'];

    $file = file_get_contents("userdb.html");
    if(!strpos($file, $username)) {
        echo "Your username was not found in our database. Please go back and try again.";
    } else {
        echo "Redirecting...";
        if (md5($password) == !strpos($file, (md5($password))) {
             echo "Redirecting..."
             header ('Location: ./userhome.php')
        } else {
             print "Whoops! Your password seems to be incorrect. Go back and try again."
        }
    }
?>

And I get the error:

Parse error: syntax error, unexpected '{' in userprocess.php on line 11

Could someone tell me the problem please? I think it may be the if inside of if statement, but what can I do for an alternative? Thanks.

snarkyt123
  • 69
  • 1
  • 2
  • 6

4 Answers4

4

Firstly, this line is missing a closing bracket:

if (md5($password) == !strpos($file, (md5($password))) {

Count the number of ( and ) -- they need to match.

When you fix this, you'll still get errors, because PHP statements need to end with semi-colons.

All of the following lines are missing their semi-colon:

echo "Redirecting..."
header ('Location: ./userhome.php')
print "Whoops! Your password seems to be incorrect. Go back and try again."

You need to fix them all before you'll be able to run the program without syntax errors.

Hope that helps.

Spudley
  • 166,037
  • 39
  • 233
  • 307
  • Right after I posted this I realized the semicolons (a seriously stupid problem for me) but thank you for the fix of the if statement. It was a well thought out an clear answer. Thank you. – snarkyt123 Aug 14 '11 at 21:21
  • Also, an `echo` followed by `header` and `print` is just too obvious an error to ignore... – Linus Kleen Aug 14 '11 at 21:25
  • @Linus - indeed, but I was already straying outside the bounds of the original question by pointing out the semicolons. :) – Spudley Aug 14 '11 at 21:57
1

Change

if (md5($password) == !strpos($file, (md5($password)))

to

if (md5($password) == !strpos($file, md5($password)))
Shef
  • 44,808
  • 15
  • 79
  • 90
1

You are missing a right parenthesis in the line:

if (md5($password) == !strpos($file, (md5($password))) {
Marcelo
  • 2,232
  • 3
  • 22
  • 31
1
<?php
    $username = $_POST['username'];
    $password = $_POST['pwd'];

    $file = file_get_contents("userdb.html");
    if(!strpos($file, $username)) {
        echo "Your username was not found in our database. Please go back and try again.";
    } else {
        echo "Redirecting...";
        if (md5($password) == !strpos($file, md5($password))) {
             echo "Redirecting...";
             header ('Location: ./userhome.php');
        } else {
             print "Whoops! Your password seems to be incorrect. Go back and try again.";
        }
    }
?>
Ernestas Stankevičius
  • 2,420
  • 2
  • 24
  • 30