繁体   English   中英

登录页面没有显示错误,也没有登录php

[英]login page doesn't show error and doesn't login php

此验证页面不会显示错误,也不会重定向到主页。 我检查它是否到达了数据库的验证,并且工作正常,但没有重定向页面,所以我认为问题出在“ $ user = $ req-> fetch()” help plz

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

 $username = $_POST['username'];
$password = $_POST['password'];
 $pc = md5($password);

$req = $pdo->prepare('SELECT * FROM users WHERE nom= :username AND pass= :password');
$req->execute(array(
    'username' => $username,
    'password' => $pc,
    ));

 if ($user = $req->fetch()) {
    $_SESSION['auth'] = $user;
    header("location:home.php");
    exit();

 }

 else{
 echo"<script> alert('LE NOM D UTILISATEUR OU LE MOTS DE PASSE INCORRECTE')</script>";
}

我同意@tadman,您应该考虑使用一个框架,而不是稍后实现自己的访问控制。 独自使用md5并不是哈希密码的好方法。 请至少尝试加盐。 无论如何这应该为您工作。 只需替换数据库,用户和数据库连接即可。 再次,我不会将这些直接放在视图上。

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

    $host = '127.0.0.1';
    $db   = 'tester';
    $user = 'root';
    $pass = 'root';
    $charset = 'utf8';

    $username = $_POST['username'];
    $password = $_POST['password'];
    $pc = md5($password);

    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";

    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];

    $pdo = new PDO($dsn, $user, $pass, $opt);


    $stmt = $pdo->prepare('SELECT * FROM users WHERE nom= :username AND pass= :password');

    $stmt->execute(['username' => $username,'password'=>$pc]);

    if($user = $stmt->fetch()){
         $_SESSION['auth'] = $user;
        header("location:home.php");
        exit();

    }else{
        echo"<script> alert('LE NOM D UTILISATEUR OU LE MOTS DE PASSE INCORRECTE')</script>";
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM