登录验证返回0时不应该

时间:2018-01-16 23:30:31

标签: php mysql

所以我有一个名为movierating的数据库与表用户,在那里我有一个主键:user_id,以及user_name和user_password参数。我想完成我的登录系统,不能真正找到我的问题的答案。事情是我已经添加了一个"用户"在我的数据库中使用用户名:test和密码:test。 它甚至会返回0,即使我知道我已经注册了用户。

    <?php
/** 
    Data: 29-10-2017
    Ficheiro de configuração, cria e seleciona a base de dados 
*/

/* 
    Definição das constantes para acesso à base de dados. Pretende-se que estas informações não
    sejam alteradas por qualquer script deste site.
*/
define('DB_USER', 'root');      // nome do utilizador com acesso à base de dados
define('DB_PASSWORD', '');  // password de acesso à base de dados       
define('DB_HOST', 'localhost');     // nome do servidor
define('DB_NAME', 'movierating');       // nome da base de dados

// Ligação ao servidor MySQL
$con =  new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if($con->connect_errno){
    echo "Falhou a conexão com a base de dados: " . $dbc->connect_errno;
}

$con->set_charset("utf8"); // permite corrigir os caracteres com cedilhas na visualização dos campos

    ?>

这是我与数据库的连接。 这是我的登录验证:

    <?php

    require_once "ligaDB.php";

    if(isset($_POST['send'])){

if(isset($_POST['username'])) $user  = $_POST['username'];
if(isset($_POST['password'])) $senha  = $_POST['password'];
    }

$sql = "SELECT user_id, user_name
        FROM users
        WHERE user_name='$user' AND user_password=SHA1('$senha')";

$result = $con->query($sql);

if($con->errno) die($dbc->error);

if ($result->num_rows == 1) {
    // utilizador está registado

    // Extrai o registo 
    $registo = $result->fetch_assoc();     //$registo = $result->fetch_array ();

    session_start();
    $_SESSION['loggedin']   = true; // indica que fez login
    $_SESSION['username']   = $user;
    $_SESSION['user_id']    = $registo['user_id'];

    $con->close();
    header("location: dashboard.php?PHPSESSID=" . session_id());

}

else {
        header("Location: Registo.php?erro='O user e a senha não existem na base de dados.'");
}

    ?>

正如我所说,$ result总是返回0,我不知道为什么。 PS:我在POST方法中传递的名称是正确的,并且没有出现错误。我做了一个&#34;回声结果;出口;&#34;它总会返回0. PSS:我是一个新的PHP,所以它可能是一个愚蠢的错误,但我真的找不到解决它的答案。谢谢!

0 个答案:

没有答案