Ind*_*dex 1 php session-variables
我一直在寻找并发现了几个类似的问题,但没有一个能解决我的问题.正如标题所述,我遇到的问题是会话变量没有"保存" - 即它们只能像局部变量一样工作.我想要完成的事情:
函数"ABC"没有运行defualt的索引页 - 链接到myscript.php以激活boolean类型的会话变量 - myscript.php检查是否设置了会话变量,如果没有将其变为true.否则将其变为false:索引页面现在应该激活"ABC"功能.
所以,这是有趣的事情.这在今天早些时候就像一个魅力,但在随机刷新之后,现在却没有.认为这是一个会话故障,我添加了一个会话ID但发现会话ID在索引页面和myscript.php上都是正确/相同的.
我还试图启用错误报告,发现我在第15行收到了"Undefined index:showAll in C:\ xampp\htdocs\kelvin\ext\set_date.php".哪个是weired,因为我使用issset函数来避免这种情况.
myscript.php
<?php
session_start();
echo "Session ID: " . session_id(); //Is the same as on the index page where the script is being called.
---------------
//Sets speed mode on or off (simple or extensive listing).
if(!isset($_SESSION['showAll']))
{
$_SESSION['showAll'] == TRUE;
}
else {
if($_SESSION['showAll'] == TRUE)
{
$_SESSION['showAll'] = FALSE;
}
else
{
$_SESSION['showAll'] = TRUE;
}
}
header('location:../index.php');
?>
Run Code Online (Sandbox Code Playgroud)
提前,谢谢你的任何输入:)
你的问题可能在这里:
if (!isset($_SESSION['showAll'])) {
$_SESSION['showAll'] == TRUE;
}
Run Code Online (Sandbox Code Playgroud)
双等号(==)检查是否相等,但没有设置任何东西.
尝试用单个等号(=)替换它.
此外,您的逻辑可以大大缩小:
if (!isset($_SESSION['showAll'])) {
$_SESSION['showAll'] = true;
} else {
$_SESSION['showAll'] = !$_SESSION['showAll'];
}
Run Code Online (Sandbox Code Playgroud)
你只是交换价值$_SESSION['showAll'].
| 归档时间: |
|
| 查看次数: |
5325 次 |
| 最近记录: |