我刚刚启动PHP,我想知道如何修复此解析错误。 这是错误:[关闭]

问题描述:

Parse error: parse error in C:\wamp\www\Discussion Forums\login.php on line 70

Here is my code. By the way, I'm making a login page which has functions config (for database connectivity), header and footer page , and I use WampServer and Dreamweaver.

<?php
session_start();
require("config.php");
require("functions.php");
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
if($_POST['submit']) 
{
    $sql = "SELECT * FROM users WHERE username = '"
    . $_POST['username'] . "' AND password = '"
    . $_POST['password'] . "';";
    $result = mysql_query($sql);
    $numrows = mysql_num_rows($result);
    $result = mysql_query($sql);
    $numrows = mysql_num_rows($result);
    if($numrows == 1) 
        {
            $row = mysql_fetch_assoc($result);
            if($row['active'] == 1) 
                {
                    session_register("USERNAME");
                    session_register("USERID");
                    switch($_GET['ref']) 
                    {
                        case "newpost":
                        if(isset($_GET['id']) == FALSE) 
                            {
                                header("Location: " . $config_basedir .
                                "/newtopic.php");
                            }
                        else 
                            {
                                header("Location: " . $config_basedir .
                                "/newtopic.php?id=" . $_GET['id']);
                            }
                        break;
                        case "reply":
                        if(isset($_GET['id']) == FALSE) 
                            {
                                header("Location: " . $config_basedir .
                                "/newtopic.php");
                            }
                        else 
                            {
                                header("Location: " . $config_basedir .
                                "/newtopic.php?id=" . $_GET['id']);
                            }
                        break;
                        default:
                        header("Location: " . $config_basedir);
                        break;
                    }
                }
                else {
                require("header.php");
                echo "This account is not verified yet. You were emailed a link
                to verify the account. Please  click on the link in the email to
                                                        continue.";
                }
            echo "This account is not verified yet. You were emailed a link
          to verify the account. Please click on the link in the email to
          continue.";
        }
}
else {
header("Location: " . $config_basedir . "/login.php?error=1");
}
else {
require("header.php");
if($_GET['error']) {
echo "Incorrect login, please try again!";
}
}
?>
<form action="<?php echo pf_script_with_get($SCRIPT_NAME); ?>"
  method="post">
<table>
    <tr>
        <td>Username</td>
        <td><input type="text" name="username"></td>
    </tr>
    <tr>
        <td>Password</td>
        <td><input type="password" name="password"></td>
    </tr>
    <tr>
        <td></td>
        <td><input type="submit" name="submit" value="Login!"></td>
    </tr>
</table>
</form>
Don't have an account? Go and <a href="register.php">Register</a>!

<?php
 }
  require("footer.php");
?>

On line number 67 use else if($somecondition) instead because in if-elseif-else can have only one else block. Also there is errors in your logic I am putting the new code it may help you.

      <?php
session_start();
require("config.php");
require("functions.php");
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
if($_POST['submit']) 
{
    $sql = "SELECT * FROM users WHERE username = '"
    . $_POST['username'] . "' AND password = '"
    . $_POST['password'] . "';";
    $result = mysql_query($sql);
    $numrows = mysql_num_rows($result);
    $result = mysql_query($sql);
    $numrows = mysql_num_rows($result);
    if($numrows == 1) 
        {
            $row = mysql_fetch_assoc($result);
            if($row['active'] == 1) 
                {
                    session_register("USERNAME");
                    session_register("USERID");
                    switch($_GET['ref']) 
                    {
                        case "newpost":
                        if(isset($_GET['id']) == FALSE) 
                            {
                                header("Location: " . $config_basedir .
                                "/newtopic.php");exit;
                            }
                        else 
                            {
                                header("Location: " . $config_basedir .
                                "/newtopic.php?id=" . $_GET['id']);exit;
                            }
                        break;
                        case "reply":
                        if(isset($_GET['id']) == FALSE) 
                            {
                                header("Location: " . $config_basedir .
                                "/newtopic.php");exit;
                            }
                        else 
                            {
                                header("Location: " . $config_basedir .
                                "/newtopic.php?id=" . $_GET['id']);exit;
                            }
                        break;
                        default:
                        header("Location: " . $config_basedir);
                        break;
                    }
                }
                else {
                    //require("header.php");
                        $msg = base64_encode("This account is not verified yet. You were emailed a link
                      to verify the account. Please click on the link in the email to
                      continue.");
                      header("Location: " . $config_basedir . "/login.php?msg=".$msg);exit;
                }
                    $msg = base64_encode("This account is not verified yet. You were emailed a link
                  to verify the account. Please click on the link in the email to
                  continue.");
                  header("Location: " . $config_basedir . "/login.php?msg=".$msg);exit;

        }else{
             $msg = base64_encode("You have incorrect username or password");
                  header("Location: " . $config_basedir . "/login.php?msg=".$msg);exit;
        }
}

require("header.php");
if($_GET['msg']) {
    echo base64_decod($msg);
}

?>
<form action="<?php echo pf_script_with_get($SCRIPT_NAME); ?>"
  method="post">
<table>
    <tr>
        <td>Username</td>
        <td><input type="text" name="username"></td>
    </tr>
    <tr>
        <td>Password</td>
        <td><input type="password" name="password"></td>
    </tr>
    <tr>
        <td></td>
        <td><input type="submit" name="submit" value="Login!"></td>
    </tr>
</table>
</form>
Don't have an account? Go and <a href="register.php">Register</a>!

<?php

  require("footer.php");
?>

Here is your problem:

else {
header("Location: " . $config_basedir . "/login.php?error=1");
}
else {

You have two consecutive else's. You should revise your code.

The else before require("header.php"); line does not have matching if. That is, opening and closing curly brackets do not match.
Keeping code indented helps to avoid such errors.