登录时无法检查密码和用户名

时间:2013-07-08 05:39:43

标签: php

我试图在表单中创建PHP日志。我的代码如下。 if-else语句运行不正常。请解决这个问题。

    $connect = mysql_connect("localhost", "root", ""); //connect
    mysql_select_db("elective_mgmt", $connect);
    $username = $_GET["name"];
    $password = $_GET["password"];
    $query = "SELECT * from verify_student where 
      username='$username' && password='$password'";
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);
    if (name == $username && password == $password)
        echo "you are logged in";
    else 
        echo "please recheck your password and username";

3 个答案:

答案 0 :(得分:1)

$result = mysql_query($query);
if(mysql_num_rows($result) > 0 ){
 echo "you are logged in";
}
    else 
        echo "please recheck your password and username";

您也可以通过计算的数量来执行此操作。在您的代码中$row是一个数组,因此当您需要访问数组元素时,执行此操作$row['name']

答案 1 :(得分:0)

你这里有问题。

if(name==$username && password==$password)

应该是

if($row['name']==$username && $row['password']==$password)

OR

if(mysql_num_rows($result) == 1)

你应该看一下 - Why shouldn't I use mysql_* functions in PHP?

答案 2 :(得分:0)

您可以删除if / else语句,因为您已经使用mysql查询(名称和密码)检查了输入,并将其替换为mysql_num_rows == 1(正如其他人之前已经提到的那样)。

看来你是php新手并创建登录表单,所以让我给你一个很好的建议:

  1. 登录表单的输入值不应通过URL传递,而是使用方法post
  2. 从不保存未加密的密码(使用sha512,因为md5被认为是不安全的)
  3. 从不使用单个信息在会话中存储登录状态