php - 用户认证 PHP/SQL

标签 php mysql sql database

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

谢谢。

<?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>";
    }

?>

最佳答案

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

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

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

顺便说一句,如前所述:

  1. mysql_* 已弃用,请使用 mysqli_*PDO .
  2. 您在数据库中存储明文密码,这是非常糟糕的。请阅读有关散列和加盐存储密码的信息。

关于php - 用户认证 PHP/SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170966/

相关文章:

sql - 查找/创建一系列跟踪记录的正确结束日期

php oci_bind_by_name float

php - .htaccess css/js 子目录问题

mysql - 包含 NULL 作为值的列未在审计表中进行审计。我正在使用更新后触发器

python - 用 Python 清理用户提供的 SQL?

sql - 在表中插入一行并将其范围标识存储在存储过程的变量中

php - 在运行多个应用程序时,在 Yii2 中获取自定义控制台命令时遇到问题

php - "Cannot read property ' 安装VueJS 时出现mergeConfig ' of undefined"错误

javascript - ExtJS 4 在商店中按一列分组,总计另一列

php - MySQL 'OR' 语句 - 确定哪个部分返回行