[英]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.