解析错误:语法错误,第73行的index.php中的文件意外结束

时间:2014-04-04 01:46:55

标签: php html

<?php session_start(); 

?>

<?php

require 'connect.php';

require 'core.php';

?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Donor's Login</title>

 <link href="css/bootstrap.css" rel="stylesheet">

        <script src="js/bootstrap.min.js"></script>

</head>

<body>

<?php


    if(isset($_POST['donoruname']) && isset($_POST['donorpass']))

    {
            $username=$_POST['donoruname'];

            $password=$_POST['donorpass'];

            $password_hash= md5 ($password);
    }

    if(!empty($username) && !empty($password))
    {

        $query= "SELECT `donorid` FROM `info` WHERE `donoruname`='$username' 
`donorpass`='$password_hash' ";

        if($query_run=mysql_query($query))
        {
                $query_num_rows=mysql_num_rows($query_run);

                if($query_num_rows=0)
                {
                    echo "<script>alert('Wrong id or password');</script>";
                }
                else if($query_num_rows=1)
                {
                    echo "<script>alert('Welcome you are now logging in');</script> " ;
                }

}

    else
        {
            echo '<script>alert("enter username and password");</script>';
        }



?>
<div class="login">

<form class="span4" action="index.php" method="post">  

  <fieldset class="span3">

    <legend>Donor's Login</legend>

     Username<span class="required">*</span><br>

    <input type="text" name="uname" size="30" height="24px" placeholder="Username..."><br/>

     Password<span class="required">*</span><br>

     <input type="password" name="pass" placeholder="Password..."><br/>

     <button type="submit" name="login" class="btn">Login</button>

     <a href="register.php" class="btn btn-primary">Register</a>


  </fieldset>

</form>

</div>

</body>
</html>

在这里我从我看过的视频中写了相同的PHP代码,但在视频中它成功运行但在这个鳕鱼似乎错误像

解析错误:语法错误,第73行的index.php中意外的文件结尾

1 个答案:

答案 0 :(得分:2)

您在php中错过了结束括号 } 。试试这个:

<?php

if (isset($_POST['donoruname']) && isset($_POST['donorpass'])) {
    $username = $_POST['donoruname'];

    $password = $_POST['donorpass'];

    $password_hash = md5($password);
}

if (!empty($username) && !empty($password)) {

    $query = "SELECT `donorid` FROM `info` WHERE `donoruname`='$username' 
`donorpass`='$password_hash' ";

    if ($query_run = mysql_query($query)) {
        $query_num_rows = mysql_num_rows($query_run);

        if ($query_num_rows = 0) {
            echo "<script>alert('Wrong id or password');</script>";
        } else if ($query_num_rows = 1) {
            echo "<script>alert('Welcome you are now logging in');</script> ";
        }
    } else {
        echo '<script>alert("enter username and password");</script>';
    }
}
?>

编辑:正如评论中所建议的那样(实际上只是指出了我的愚蠢:P)。您忘记关闭其中一个if语句及其相应的括号 } 。即;如果检查,你忘了关闭这个特定的内容:

if (isset($_POST['donoruname']) && isset($_POST['donorpass']))

这导致了您的错误消息:

  

解析错误:语法错误,第73行的index.php中意外的文件结尾

我希望更多地澄清一下:)

编辑#2:看来我的守护天使正在看着我的SO行动哈哈!

但老实说他是对的,MD5哈希变得多余了。

为什么不{MD5,SHA1,SHA256,SHA512,SHA-3等}?

现代服务器可以每秒计算大约330MB的MD5哈希值。如果您的用户拥有小写,字母数字和6个字符的密码,您可以在大约40秒内尝试该大小的每个可能密码。 - 取自How to safely store a password.

更多阅读: Why you shouldn't use SHA1 or MD5...


<强>脚注:

mysql_*函数弃用通知:

http://www.php.net/manual/en/intro.mysql.php

从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqliPDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。

这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/

可以在»http://dev.mysql.com/doc/找到MySQL的文档。