为什么这个PHP代码只适用于一个用户?

时间:2017-09-03 16:52:25

标签: php

我在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());
    }


?>

1 个答案:

答案 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;
    }
}