我知道我的代码非常入门,因为我刚开始使用php。很抱歉开始我已经读过其他有关的问题和解答警告:session_destroy():试图破坏未初始化的会话刚才提到的所有答案,我都需要在使用前使用session_start()session_destroy();但是他们并没有解释为什么即使我已经使用过session_start() 我也只是尝试登录而出现此警告的原因,然后出现仪表板页面,用户可以单击注销按钮来注销整个应用程序运行正常,唯一的问题是当我单击dashboard.php中的注销按钮时,它会转到注销页面并显示上面提到的警告login.php<?phpsession_start();}?><!DOCTYPE html><html><head> <title>Login Page</title> <link rel="stylesheet" type="text/css" href="style.css"></head><body><div class="header"> <h1 align="center">Login</h1></div> orm action="" method="post"> <table align="center"> <tr><td align="right"><input type="email" name="email" placeholder="Email" required></td><td class="s1">*</td> </tr> <tr><td align="right"><input type="password" name="pass" placeholder="Password" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,12}" title="Must contain at least one number and one uppercase and lowercase letter, and at least 8 or more characters" required></td><td class="s1">*</td> </tr> <tr><td align="right"><input type="submit" value="Login"><td> </tr> </table> <p align="center"><strong>Or</strong></p> <p align="center">Create New acount <strong><input type="button" value="Sign Up" onclick="location.href='sign_up.php'"></strong></p> <br> <br> <br> <br> <br><div class="footer"> <p><span class="s1">*</span> indicates mandatory feild<p></div></body></html><?phprequire 'connection.php'; // connectionif($_SERVER['REQUEST_METHOD'] === 'POST'){$email = $_POST['email'];$pass = $_POST['pass'];// getting username from database and storing into session variable/// $sql =mysqli_query($conn,"SELECT name FROM users WHERE email='$email'"); $sql1 = mysqli_fetch_assoc($sql); $user_name = $sql1['name'];// setting session variables $_SESSION['user_name']= $cookie_name; $_SESSION['timeout']=time();// check email exists or not$query=mysqli_query($conn,"SELECT email FROM users WHERE email='$email'");if(mysqli_num_rows($query) > 0)
1 回答

qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
你跑了session_destroy()两次!这会导致您的错误。if语句中的代码在initial之后运行session_destroy()。
您也正在针对进行session_unset()同样的修复。
这是导致问题的代码(第二个session_destroy()返回false):
session_destroy(); // returns true
if(!session_destroy()) // returns false, because the session is already destroyed.
{
echo "session not destroyed"; // this gets ran
}
else {
echo "session destroyed";
}
您可以更改为此,以解决您的错误。
if(!session_destroy())
{
echo "session not destroyed";
}
else {
echo "session destroyed";
}
- 1 回答
- 0 关注
- 226 浏览
添加回答
举报
0/150
提交
取消