如何在取消设置变量后修复会话未启动

问题描述 投票:0回答:3

我一直试图解决这个问题,但不适合我。我有一个会话已启动但在使用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');
    }
?>
php session indexing
3个回答
3
投票

在使用$ _SESSION ['emaill']之前,请使用isset()检查它:

if( isset($_SESSION['emaill']) && $_SESSION['emaill'] !== NULL){
----
---
}

0
投票

添加isset检查这里

if(isset($_SESSION['emaill']) && $_SESSION['emaill'] !== NULL){

0
投票

您可以在SESSION之前使用空函数来检查值是否存在。由于在注销时未设置或销毁变量,因此无法在登录时识别SESSION。您可以尝试如下检查: -

if(!empty($_SESSION['emaill']))
{

// Your code here 

}
© www.soinside.com 2019 - 2024. All rights reserved.