【问题标题】:How to ignore session if a session had already been started?如果会话已经开始,如何忽略会话?
【发布时间】:2019-04-15 05:50:04
【问题描述】:

我有一个登录页面,当我登录时,它会将我带到我的主页。如果用户没有退出并稍后再回来,那么他就不需要再次登录。但是,如果用户已经登录,那么它会显示一条错误消息,指出会话已经开始,因此它会忽略以下代码。

这是我的 session.php 文件。我想加一个if语句,说如果会话已经启动,则将用户带到首页,如果会话未启动,则将用户带到登录页面。

<?php
// mysqli_connect() function opens a new connection to the MySQL server. 
$conn = mysqli_connect("localhost", "root", "", "supercar"); 
session_start();// Starting Session
// Storing Session 
$user_check = $_SESSION['login_user']; 
// SQL Query To Fetch Complete Information Of User 
$query = "SELECT * from adminlogin where email = '$user_check'"; 
$ses_sql = mysqli_query($conn, $query); 
$row = mysqli_fetch_assoc($ses_sql); 
$login_session = $row['nom'];
$login_session2 = $row['id'];
$login_session3 = $row['motdepasse'];

?>

【问题讨论】:

    标签: php html


    【解决方案1】:

    试试这个代码:

    if(!isset( $_SESSION['login_user'])){
       $_SESSION['login_user'];
    } else {
       header("location:index.php");
    }
    

    【讨论】:

      【解决方案2】:

      上面的答案可以解决问题,但您还需要检查会话。如果会话正在运行并且您转到存在session_start() 的网页,您将收到错误消息 使用下面的代码。

      if (session_status() == PHP_SESSION_NONE) {
          session_start();
      }
      

      checkout here session here

      【讨论】:

        【解决方案3】:

        empty() 函数将检查该变量是否设置为空。所以你不需要比较它的价值。如果值不同,则需要比较值。

        if(!empty($_SESSION['login_user'])):
           // Your session is already set
        else:
           // Your session is not set yet
        endif;
        

        【讨论】:

          【解决方案4】:

          试试这个

          $user = $_SESSION['login_user'];
          if(isset($user) && $user != ''){
             $query = "SELECT * from adminlogin where email = '$user'"; 
             $ses_sql = mysqli_query($conn, $query); 
             $row = mysqli_fetch_assoc($ses_sql); 
             $login_session = $row['nom'];
             $login_session2 = $row['id'];
             $login_session3 = $row['motdepasse'];
          }else{
             header("location:index.php");
          }
          

          【讨论】:

          • 如果不允许空用户名,那么这将起作用。但是如果会话没有开始,这不会创建一个通知吗? $user 为空,strlen 为空,那不是“不可数变量”吗?
          【解决方案5】:

          试试这个:

          if(empty($SESSION['login_user'])){
            session_start(); //Start session and put session value
          }else{
            //Redirect here
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-23
            • 2012-11-25
            • 2017-05-20
            • 2019-09-16
            • 2012-05-25
            • 2017-11-20
            相关资源
            最近更新 更多