Php 会话变量赢得';如果在同一页上清除,是否不回显?
当我在尝试回显会话变量的同一页上清除它时,我遇到了一个奇怪的问题,即会话变量为空。下面是我正在尝试做的一个快速类型 以此为例, 第A页:Php 会话变量赢得';如果在同一页上清除,是否不回显?,php,Php,当我在尝试回显会话变量的同一页上清除它时,我遇到了一个奇怪的问题,即会话变量为空。下面是我正在尝试做的一个快速类型 以此为例, 第A页: $_SESSION['referer'] = 'abc123'; header('Location: http://www.test.com/pageb.php'); exit(); function get_referer() { $referer = ''; if (isset($_SESSION['referer'])) {
$_SESSION['referer'] = 'abc123';
header('Location: http://www.test.com/pageb.php');
exit();
function get_referer() {
$referer = '';
if (isset($_SESSION['referer'])) {
$referer = $_SESSION['referer'];
$_SESSION['referer'] = null;
unset($_SESSION['referer']);
}
echo $referer;
}
第B页:
$_SESSION['referer'] = 'abc123';
header('Location: http://www.test.com/pageb.php');
exit();
function get_referer() {
$referer = '';
if (isset($_SESSION['referer'])) {
$referer = $_SESSION['referer'];
$_SESSION['referer'] = null;
unset($_SESSION['referer']);
}
echo $referer;
}
现在,当我在第B页用函数做这件事时
如果我自己运行它,它会工作:
get_referer();
当我在输入的value属性中运行echo时(确保只在页面上运行一次函数,因为调用后函数会被擦除),当我查看源页面时,它不会回显任何内容
<input type="hidden" name="referer" value="<?php get_referer(); ?>" />
也许您调用了两次get\u referer()
首先,它将回显referer和unset。当您调用输入时,会话中不再存在referer,因此不会打印任何内容。可能您调用了两次get\u referer()
首先,它将回显referer和unset。当您调用输入时,会话中不再存在referer,因此不会打印任何内容。您正在使用
<input type="hidden" name="referer" value="<?php get_referer(); ?>" />
您正在使用
<input type="hidden" name="referer" value="<?php get_referer(); ?>" />
我无法复制。请给我们完整的源代码。我想你还记得这两页上的session\u start()
?很好地指出并演示了问题(尽管我无能为力)。@Kristian Antonsen,我尝试了我的示例,发现它在原始环境下确实有效。我更新了问题以进一步探究我的问题。@您是否已在HTML输出中检查到引用程序不存在?您没有显示在清除\u referer()之前还是之后运行get\u referer()
。事实上,你的例子变化不大。我还是不能繁殖。您需要提供更多的代码。@Kristian Antosen我输入了一些原始代码,在回显会话变量后,我只需将其取消设置。在上面的最新更新中,我没有使用clear_referer(),它在此上下文中不存在。;我无法复制。请给我们完整的源代码。我想你还记得这两页上的session\u start()
?很好地指出并演示了问题(尽管我无能为力)。@Kristian Antonsen,我尝试了我的示例,发现它在原始环境下确实有效。我更新了问题以进一步探究我的问题。@您是否已在HTML输出中检查到引用程序不存在?您没有显示在清除\u referer()之前还是之后运行get\u referer()
。事实上,你的例子变化不大。我还是不能繁殖。您需要提供更多的代码。@Kristian Antosen我输入了一些原始代码,在回显会话变量后,我只需将其取消设置。在上面的最新更新中,我没有使用clear_referer(),它在此上下文中不存在。;