-1

我试图创建一个 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";
4

3 回答 3

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

You can also do this by counting the number of rows. In your code $row is an array so whenver you need to acces the array elements do this $row['name']

于 2013-07-08T06:05:03.007 回答
0

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

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

  1. 登录表单的输入值不应通过 URL 传递,而是使用方法 post
  2. 永远不要保存未加密的密码(使用 sha512,因为 md5 被认为是不安全的)
  3. 永远不要使用单一信息来存储会话中的登录状态
于 2013-07-08T06:55:51.787 回答
0

你这里有问题。

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

它应该是

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

或者

if(mysql_num_rows($result) == 1)

你应该看看 -为什么我不应该在 PHP 中使用 mysql_* 函数?

于 2013-07-08T05:42:03.797 回答