如何在 PHP 中获取会话数据? [复制]

Posted

技术标签:

【中文标题】如何在 PHP 中获取会话数据? [复制]【英文标题】:How can I get session data in PHP? [duplicate] 【发布时间】:2021-09-13 21:27:05 【问题描述】:

我是 php 新手,所以这是我的问题

index.php

 if(!function_exists("session_register"))   
    function session_register()   
        $args = func_get_args();  
        if(count($args) <= 0)  
        return;  
        foreach($args as $key)  
            $_SESSION[$key] = $GLOBALS[$key];        
      
 
include("connection2.php");
ob_start();
session_start();



if($_SERVER["REQUEST_METHOD"] == "POST")        
    
    $myusername = mysqli_real_escape_string($db,$_POST['username']);     
    $mypassword = mysqli_real_escape_string($db,$_POST['pass']);     
    $sql = "SELECT * FROM Users WHERE UserName='$myusername' and UserPassword='$mypassword'";   
    $result = mysqli_query($db,$sql);   
    $row = mysqli_fetch_array($result);
    $userID = $row["UserID"];  
    $userType = $row["UserType"];  
    
    
    $count = mysqli_num_rows($result);             
    if($count >0 ) 
        if($userType == 2 || $userType == 1 )  
            $_SESSION['UserID']=$userID;
            $_SESSION['UserType']=$userType;
            header("location: dashboard.php");
            ob_end_flush();
            
         else 
            
            
             header("location:index.php");
             ob_end_flush();
        
     
 

session.php

<?php
   include('connection2.php');
   session_start();
   
   $userID =  $_SESSION['UserID'];
   $userType =  $_SESSION['UserType'];
   $ses_sql = mysqli_query($db,"select * from Users where UserID = $userid ");
   
   $row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
   
   $user_info = $row['UserInfo'];
   
   if(!isset($_SESSION['UserID']))
      header("location:index.php");
      die();
   
?>

dashboard.php

<?php 
include("session.php");

    if($userType == 1)
        include("_header.php");
    else 
        include("_header2.php");
    
    
   
?>

我的代码总是重定向到 index.php 但我可以看到我的变量 /* $userID = $row["UserID"]; / and / $userType = $row["UserType"];*/ in index.php

如何在dashboard.php上传递我的变量,无论是否使用会话。

我需要帮助。非常感谢。

【问题讨论】:

session_register() 早就被删除了 【参考方案1】:

您可以通过查询参数传递它。这样你就可以写了,

header('location: dashboard.php?userId=' . $userID);

然后在dashboard.php里面,你可以使用$_GET['userId']访问用户的id。

【讨论】:

不,它不适合我。不包括任何 _header 我通过 userType 但我的 URL 如“x-x.com/dashboard.php?userType=%27%20.%201”

以上是关于如何在 PHP 中获取会话数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

PHP-CODEIGNITER如何在会话中获取数据

PHP Laravel:如何设置或获取会话数据?

在我单击注销按钮之前,如何在 php 中保持会话? [复制]

如何在 10 分钟不活动后使 PHP 会话过期? [复制]

如何在php中获取会话数组值?

如何从 php 中的当前会话中获取 csv 文件?