如何在取消设置变量后修复会话未启动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在取消设置变量后修复会话未启动相关的知识,希望对你有一定的参考价值。
我一直试图解决这个问题,但不适合我。我有一个会话已启动但在使用unset($_SESSION['variable']
注销后,我无法登录,因为会话未设置。
请帮帮我。注意:取消设置变量后我无法登录。
//this is login.php
<?php
session_start();
ob_start();
$msg = "";
if (isset($_POST['login'])){
include "dbconnect.php";
if($_SESSION['emaill'] !== NULL){
$emaill= $_SESSION['emaill'];
$passWord = $_POST['passWord'];
if (empty($emaill && $passWord) == false){
$sql = "SELECT * FROM `sono` WHERE `eMail`='$emaill' && `passWord`='$passWord'";
$check = mysqli_query($dbconnect, $sql) or die (mysqli_error($dbconnect));
$result = mysqli_num_rows($check);
if ($result > 0){
$emaill= $_SESSION['emaill'];
header ('location: home.php');
exit();
} else
$msg = "<p style='color: red; padding-left: 10px'>Invalid password or email address</p>";
} else
$msg = "<p style='color: red; padding-left: 10px'>Please enter your email and password to login</p>";
} else
$msg = "<p style='color: red; padding-left: 10px'>My scripts not working yet</p>";
}
?>
// this is for logout
<?php
session_start();
if (isset($_SESSION['emaill'])){
unset($_SESSION['emaill']);
header('location: login.php');
}
?>
答案
在使用$ _SESSION ['emaill']之前,请使用isset()检查它:
if( isset($_SESSION['emaill']) && $_SESSION['emaill'] !== NULL){
----
---
}
另一答案
添加isset
检查这里
if(isset($_SESSION['emaill']) && $_SESSION['emaill'] !== NULL){
另一答案
您可以在SESSION之前使用空函数来检查值是否存在。由于在注销时未设置或销毁变量,因此无法在登录时识别SESSION。您可以尝试如下检查: -
if(!empty($_SESSION['emaill']))
{
// Your code here
}
以上是关于如何在取消设置变量后修复会话未启动的主要内容,如果未能解决你的问题,请参考以下文章
在我取消选中收音机并将所有变量设置为未定义后,我的弹出元素将再次出现