登录PHP MySQL
我是PHP新手,我正在尝试制作一个登录表单,以便人们可以使用他们的电子邮件和密码登录 密码和电子邮件在我的数据库中。密码是md5加密的 目前,当我进入表单时,它正在工作。但是,当我单击connect时,它会进入我的includes/login.php,并在一个白色页面中显示Stuck登录PHP MySQL,php,mysql,session,login,md5,Php,Mysql,Session,Login,Md5,我是PHP新手,我正在尝试制作一个登录表单,以便人们可以使用他们的电子邮件和密码登录 密码和电子邮件在我的数据库中。密码是md5加密的 目前,当我进入表单时,它正在工作。但是,当我单击connect时,它会进入我的includes/login.php,并在一个白色页面中显示Stuck <?php if (isset($_POST['email']) && isset($_POST['password'])) { $user = $_POST['email'];
<?php
if (isset($_POST['email']) && isset($_POST['password'])) {
$user = $_POST['email'];
$pass = $_POST['password'];
$passmd5 = md5($pass);
include('connexiondb.php');
$check = mysqli_query($mysqli, 'SELECT * FROM User WHERE EmailUser == $user');
while($checkRow = mysqli_fetch_array($check)) {
$passmd5db = $checkRow['PassUser'];
$accessUser = $checkRow['AccessUser'];
$idUser = $checkRow['IDUser'];
}
if($passmd5 == $passmd5db) {
// dans ce cas, tout est ok, on peut démarrer notre session
// on la démarre :)
session_start ();
// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) (notez bien que l'on utilise pas le $ pour enregistrer ces variables)
$_SESSION['id'] = $idUser;
$_SESSION['access'] = $accessUser;
// on redirige notre visiteur vers une page de notre section membre
header ('location: index.php');
}
}
?>
我做了什么坏事吗
对
1) 您没有使用参数化查询。(在谷歌上查找)
2) md5不是存储密码哈希的好选择。请参阅:您的代码对SQL注入是可疑的第一眼-mysql使用=
而不是=
,字符串必须用引号封装”
/'
,php不解析单引号中的变量,只解析双引号->“从EmailUser='$User'
错误报告(E\u ALL)的用户中选择*;ini设置(“显示错误”,1)
将这两行直接添加到之后,查询的$user
周围也应该有引号。查询被单引号包围,单引号不会解析变量,因此这是一个sql错误。我同意乔纳森的评论,他指出了一个错误