[英]get specific ID from a row
The program is a part from a login. 该程序是登录的一部分。 At first it reads the database. 首先,它读取数据库。 Afterthen it reads a row until it gets the value of the ID. 之后,它将读取一行,直到获得ID的值。 Then I wanna put that value in a Session. 然后,我想将这个值放在一个Session中。
The problem is when I wanna log in, I get everytime an error message, "wrong email/password". 问题是,当我想登录时,每次都会收到一条错误消息,“错误的电子邮件/密码”。
Where could be the problem? 问题可能出在哪里? I haven't encrypted the password yet, it will be done after it works everything. 我尚未加密密码,它将在一切正常后完成。
<_?php
if(isset($_POST['sbmt'])){
$login = mysqli_real_escape_string(htmlspecialchars($_POST['login']));
$pswd = mysqli_real_escape_string(htmlspecialchars($_POST['pswd']));
$id = $_POST['id'];
if(validateData($login, $pswd) === true){
$_SESSION['logedIn'] = true;
header("Location: index.php");
}else{
$_SESSION['logedIn'] = false;
echo 'Wrong Email/Password';
}
}
function validateData($login, $pswd){
if(strlen($login) > 0 && strlen($pswd) > 0){
$result = mysqli_query("SELECT id,name FROM register WHERE email='$login' && password='$pswd'") or die(mysqli_error());
while($row = mysqli_fetch_array($result)) {
if (isset($_SESSION['logedIn'])) {
$_SESSION['logedIn'] = $row['id'];
} else {
return false;
}
break;
echo '<newarial>' . $row['id'] . '</newarial>'; }
if($row === false){
return false;
}else{
return true;
}
}else{
return false;
}
}
?_>_
thats because you are checking for session logedIn and it's just not there yet so your function validateData returns false every time 那就是因为您正在检查会话已登录,并且还不存在,所以您的函数validateData每次都会返回false
if (isset($_SESSION['logedIn'])) {
$_SESSION['logedIn'] = $row['id'];
You could do something like this: 您可以执行以下操作:
function validateData($login, $pswd){
$link = mysqli_connect("host", "username", "password", "database") or die("cannot connect"));
if(strlen($login) > 0 && strlen($pswd) > 0){
$result = mysqli_query($link, "SELECT id,name FROM register WHERE email='$login' && password='$pswd'") or die(mysqli_error());
if (mysqli_num_rows($result) !=1) {
return false;
}
$result = mysqli_fetch_array($result);
$_SESSION['userId'] = $row['id'];
$_SESSION['userName'] = $row['name'];
return true;
}
return false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.