1
votes

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.

4
Try to use good IDE and you'll see syntax errors marked. NetBeans or PhpStorm.OZ_
Are you going to come back soon and ask, why redirection didn't work?Linus Kleen
Are you really saving usernames and passwords in an html file? Even if you hash and salt, you should still not hand them out.Marcel

4 Answers

4
votes

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.

1
votes

You are missing a right parenthesis in the line:

if (md5($password) == !strpos($file, (md5($password))) {
1
votes
<?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.";
        }
    }
?>
1
votes

Change

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

to

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