我需要为用户会话使用恒定的用户标识符变量。我一直在尝试使用会话将其保持在伪全局变量状态,但这似乎不起作用。
基本上,我可以在A页中声明它并将其传递到B页或C页,但是我需要从A页传递到B页到C页。而且似乎不需要记住该变量B和C。
我已经尝试了几种尝试方法来使它起作用。显然,我确保页面以session_start()开头。
我用正确的语法声明并为会话变量分配了一个值。
可以从声明该变量的变量之后的任何变量读取该变量。但是,再次,如果我尝试再次传递该变量,它将不会再次读取。
我尝试不再声明它,再次声明它,将其保存到本地变量,关闭会话,开始新的会话,然后在该新会话中再次声明变量。似乎没有任何作用。
我还回显了session_id(),以确保它们都存储在同一位置。他们是。
A页
<?php
session_start();
include("database_config.php");
echo session_id();
if($_SERVER["REQUEST_METHOD"] == "POST") {
$stmt = $DBH->prepare("SELECT ID FROM users WHERE username = '{$_POST['input_username']}' and password = '{$_POST['input_password']}'");
$stmt->execute();
if ($stmt->rowCount()==1){
while ($row = $stmt->fetch()){
$_SESSION["login_ID"] = "$row[0]";
}
echo "document.title = 'Login Success - '{$_SESSION['login_ID']}''";
} else {
echo "document.title = 'Login Fail'";
}
}
?>
页面B
<?php
session_start();
echo session_id();
$login = $_SESSION['login_ID'];
echo ($login);
?>
C页
<?php
session_start();
echo session_id();
$login = $_SESSION['login_ID'];
echo ($login);
?>