_SESSION美元和_GET美元之间的奇怪冲突


weird conflict between $_SESSION and $_GET

为了在我使用的 2 个.php文件之间传递一个变量,

寄件人

<?php  
session_id('theSessionID'); 
session_start();
$_SESSION['theLOG'] = $theloginusername;
?>

接收器

<?php 
session_id('theSessionID'); 
session_start();
$theloginusername = $_SESSION['theLOG'];
?>

(顺便说一句,它仅适用于session_id)

它有效,但我注意到在其他包含此代码的页面上,

<?php
if (empty($_GET)) {echo "<script>window.location = 'http://www.myweb.com/'</script>";} 
$passToken = $_GET["recordID"];
?>

上述条件的行为就好像变量是空的,即使它不是。

奇怪的是,当我注释掉条件语句时,$passtoken变量被分配了来自 $_GET 的预期值。

为什么当我使用$_SESSION时,$_GET会以这种方式响应?

它仅适用于session_id

我想你的意思是它只有在你包含该行时才有效

session_id('theSessionID'); 

(我还假设您知道在生产系统上使用会话 ID 的文字值是多么愚蠢)。

如果是这种情况,那么您的cookie生成错误报告有问题(否则您会看到PHP生成的错误消息,指出标头已经发送)。