我在php中有一个登录系统。在我的数据库中,我只有两个人注册,登录系统只适用于第一个。 我已经检查了表格,但它没有用。谢谢
<?php
try{
$conexion = new PDO("mysql:host=localhost; dbname=pruebas_login" , 'root', '' );
$conexion->exec('SET NAMES utf8');
$conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM USUARIOS_PASS WHERE USUARIOS= :login AND PASSWORD= :password" ;
$resultado = $conexion->prepare($sql);
$usuario = htmlentities(addslashes($_POST['username']));
$password = htmlentities(addslashes($_POST['password']));
$resultado->bindValue(":login", $usuario);//bindValue = bind_param solo que con marcadores
$resultado->bindValue(":password", $password);
$resultado->execute();
$numero_registro = $resultado->rowCount();
if($numero_registro != 0){
session_start();
$_SESSION["usuario"]=$_POST['username'];
header("location:usuarios_registrados.php");
}else{
header("location:login.php");
}
}catch(Exception $e){
die("Error". $e->getMessage());
}
?>
答案 0 :(得分:1)
在$ resultado-&gt; execute()之后,代码应该如下所示。但要使它符合你的风格。我只需添加一个fetch并将其保存为$ data,然后将其用作auth。
$data = $resultado->fetch();
if ($resultado->rowCount > 0)
{
if (password_verify($password, $data['password']))
{
$_SESSION['user_session'] = $data['username'];
return true;
}
}