【发布时间】:2022-02-13 07:41:17
【问题描述】:
当我打印 print_r($SESSION) 函数时,它显示为空。这是下面的代码(ps。暂时不要担心SQL注入)。
其他一切都完美无缺,错误完美显示。它只是会话值空了!
<?php
session_start();
include 'dbconnect.php';
$emailerror = $passworderror = "";
if(isset($_POST['submit']))
{
$email= $_POST["email"];
$password= $_POST["password"];
if (empty($email)) {
$emailerror = "*Email must be entered";
}
elseif (!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$emailerror= "*Invalid email address Entered";
}
// To check if email has already been used or if another account with the same email exists
else{
$emailquery = ("SELECT * FROM `Potential_Employee` WHERE `Email` = '$email'");
$emailcheckresult = mysqli_query($connection, $emailquery);
if(mysqli_num_rows($emailcheckresult) == 1){
$row=mysqli_fetch_assoc($emailcheckresult);
if (!password_verify($password, $row['Password'])){
$passworderror = "*Password is incorrect!";
}
else{
$_SESSION['Email'] = $email;
$_SESSION['logged_in'] = true;
echo "<script>document.location='EmployeeDashboard.php';</script>";
}
}
else{
$emailerror = "*Email does not exist";
}
}
if (empty($password)) {
$passworderror = "*Password must be entered";
}
elseif (strlen($password) < 4 )
{
$passworderror= "*Password Has to be greater than 8 Characters";
}
【问题讨论】:
-
一点提示,我不会提及 SQLi .. 如果您存储错误,例如。
$emailerror, $passworderror在像$errors['email'], $errors['password']这样的数组中,您可以简单地检查它是否为空,否则会出现各种错误。它将通过更好的分组使其更简洁,更容易传递给视图等,并且一旦您进入具有 20 多个输入的表单,您将不需要记住所有全局变量,只需调试一个变量。快乐编码.. -
好点@LawrenceCherone 快乐编码
-
@LawrenceCherone 啊,好的,谢谢。