警告:session_destroy():试图破坏未初始化的会话[使用的session_start

我知道我的代码非常入门,因为我刚开始使用php。很抱歉开始


我已经读过其他有关的问题和解答


警告:session_destroy():试图破坏未初始化的会话


刚才提到的所有答案,我都需要在使用前使用session_start()


session_destroy();


但是他们并没有解释为什么即使我已经使用过session_start() 我也只是尝试登录而出现此警告的原因,然后出现仪表板页面,用户可以单击注销按钮来注销


整个应用程序运行正常,唯一的问题是当我单击dashboard.php中的注销按钮时,它会转到注销页面并显示上面提到的警告


login.php


<?php

session_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>


<?php

require 'connection.php'; // connection


if($_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)


MMMHUHU
浏览 227回答 1
1回答

qq_遁去的一_1

你跑了session_destroy()两次!这会导致您的错误。if语句中的代码在initial之后运行session_destroy()。您也正在针对进行session_unset()同样的修复。这是导致问题的代码(第二个session_destroy()返回false):session_destroy(); // returns trueif(!session_destroy()) // returns false, because the session is already destroyed.{&nbsp; echo "session not destroyed"; // this gets ran}else {&nbsp; echo "session destroyed";}您可以更改为此,以解决您的错误。if(!session_destroy()){&nbsp; echo "session not destroyed";}else {&nbsp; echo "session destroyed";}
打开App,查看更多内容
随时随地看视频慕课网APP