php循环会话变量

php循环会话变量,php,session,Php,Session,尝试基于会话变量运行循环。 在第一页上,不加载会话。 当它设置会话时,我设置会话变量和警报 问题是,它会在每次页面加载时发出警报: ` <!-- language: lang-php --> $check = $_SESSION['cache']; if ($check == "xYx") { echo $word; } else { session_start(); ?><script>alert ("Im reading it aga

尝试基于会话变量运行循环。 在第一页上,不加载会话。 当它设置会话时,我设置会话变量和警报

问题是,它会在每次页面加载时发出警报:

`
<!-- language: lang-php -->

$check = $_SESSION['cache'];  

if ($check == "xYx") {  

echo $word;  
} else {  

session_start();  
?><script>alert ("Im reading it again !")</script><?  

echo $word;  
$_SESSION['cache'] = "xYx";  
}  
`

以前发生过

session_start();
这不起作用。

只需执行以下操作:

session_start();
$check = $_SESSION['cache'];  

if ($check == "xYx") {  

echo $word;  
} else {  

?><script>alert ("Im reading it again !")</script><?  

echo $word;  
$_SESSION['cache'] = "xYx";  
}

这只是简单地将会话从开始移动到开始,正如评论所说。

您必须先启动会话,然后才能从中读取。这就是重点,因为在第一次读取时$check不等于xYx,它将创建会话并将$check设置为xYx。正如Alex所说,在使用$会话超全局之前,必须调用会话\u start。读取回调将检索以特殊序列化格式存储的任何现有会话数据,并且当读取回调将保存的会话数据返回给PHP会话处理时,将取消序列化并用于自动填充$\u会话超全局。然后在第二次通过时,$check应该等于xYx,这样它就不会提醒或调用启动会话。很好,我知道这会很简单。谢谢您的快速回复。
session_start();
$check = $_SESSION['cache'];  

if ($check == "xYx") {  

echo $word;  
} else {  

?><script>alert ("Im reading it again !")</script><?  

echo $word;  
$_SESSION['cache'] = "xYx";  
}