用户身份验证PHP / SQL

时间:2014-10-02 23:02:59

标签: php mysql sql database

首先。我是PHP / SQL和StackOverflow的新手,所以如果我的帖子很奇怪,我很抱歉。我很难搞清楚我的代码有什么问题。我已经注册了几个用户(每个用户的密码为c),但我只登录失败。如果那是错的,那是我的吗?

谢谢。

<?php

session_start();

    //Connecting and choosing DB
    $connection = mysql_connect("link", "user", "pw");           
    mysql_select_db("user", $connection); 

    $username = mysql_real_escape_string($_POST['brukernavn']);
    $password = mysql_real_escape_string($_POST['passord']);


    // Check the users input against the DB.
    $sql = "SELECT * FROM brukere WHERE brukernavn = '$username' AND passord = '$password'";
    $result = mysql_query($sql) or die ("Unable to verify user because " . mysql_error());

    $row = mysql_fetch_assoc($result);

    if($row['total'] == 1)

    {
        $_SESSION['loggedIn'] = "true";
        header("Location: insertlink");
    }
    else
    {
        $_SESSION['loggedIn'] = "false";
        echo "<p>Login failed, username or password incorrect.</p>";
    }

?>

1 个答案:

答案 0 :(得分:3)

total返回的数组中没有mysql_fetch_assoc()字段。

如果您想知道结果的数量,请使用count功能:

if(count($rows) === 1)
…

顺便说一下,如前所述:

  1. mysql_*已弃用,请使用mysqli_*PDO
  2. 您在数据库中存储明文密码,这非常糟糕。请阅读哈希和盐存储密码。