我正在尝试使用在一个页面上设置并在另一页面上调用的会话值。问题是,当我在另一页上调用会话值时,它说该值不存在,特别是未定义的索引。我认为PHP正在与每个页面开始一个新的会话。我检查了以下内容:
文件夹exists(tmp)
,可访问,并且可写。使用attrib
进行了检查。
Session_start
在两页中都是每页的第一行。
试图使用PHP 5.6.40、7.0和7.3.5(WAMP服务器)运行页面。我在所有版本中都有相同的问题。
php.ini
设置被设置为默认设置,因此逻辑上应该能够使用默认设置访问会话。
我可以访问tmp文件夹中的会话文件,并观察到它正在将变量保存到文本文件本身。
代码(检查页):
<?php
session_start();
?>
<!DOCTYPE html>
...
<script>
function submitcheck(){
var x,y,text,text1;
x=document.getElementById('checkv').value;
y=<?php echo $_SESSION['code'];?>;
if(x==y){
...
代码(中间页):
<?php
session_start();
...
function __construct(){
$this->number=random_int(1,999999);
...
$_SESSION['code']=$this->number;
}
...
?>
我不明白的是,为什么PHP在每个页面上启动一个新会话,却不访问当前页面。