所以我有一个名为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,所以它可能是一个愚蠢的错误,但我真的找不到解决它的答案。谢谢!