我一直在网上进行深入研究,寻找这个错误的解决方案,但我还无法修复它。 我来介绍一下情况:
SCRIPT1.php:
if(isset($_SESSION['LoadFile'])){
echo "<span>";
$MsgId = 91;
$Msg = GetMsg($language, $MsgId);
echo $Msg . " ";
echo "<input name=\"Fleet\" id=\"Fleet\" type=\"file\" />";
echo "</span>";
}else{
echo "<span>";
$MsgId = 169;
$Msg = GetMsg($language, $MsgId);
echo $Msg . " ";
$MsgId = 22;
$Msg = GetMsg($language, $MsgId);
echo "<a href=\"".$linkpath."inc_load_file.php\">".$Msg."</a>";
echo "</span>";
}
inc_load_file.php内容:
<?php
$_SESSION["LoadFile"] = "Load, please";
$_SESSION["ShowLoadingOpt"] = "Show";
//echo $_SESSION["LoadFile"] <---This works correctly, the variable is being properly created.
header("Location: ".$_SESSION["PrevLoc"]);
exit;
?>
请注意,如果我在print_r($_SESSION)
的请求中Script1
,则会显示以下结果:
Array (
[UID] => 1
[UName] => Santi
[USurname] => Márquez
[ULvl] => 1
[ULang] => en_Gb
[Logged] => 1
[UEmail] => xxx@xxx.com
[User] => smarquez
[UCreationDate] => 2015-10-14
[UAccessTimes] => 162
[UALDesc] => Administrator
[CountryCodeKPIReportsGenerator] => 2
)
我的网页应该显示如下消息:
&#34;已加载文件。如果您要加载新文件,请点击此处。&#34;
如果单击链接,则会执行inc_load_file.php
。它会创建session
variables
并返回script1.php
。完成后,网页应显示文件输入,但实际上,它仍显示链接。未设置session
变量。
在执行session
header()
后,您能否帮我检查一下为什么在inc_load_file.php中创建的function
变量没有被正确返回?
非常感谢您的帮助。
答案 0 :(得分:1)
session_start()
之前以及在向浏览器输出任何内容之前,在脚本开头添加$_SESSION
。$_SESSION["PrevLoc"]
在哪里设置?您在“位置”标题中使用它,但我们没有看到您设置其值。答案 1 :(得分:1)
感谢您的回答:) 我正在使用wamp,会话自动启动。 它正确启动,这就是为什么我能够将所有这些数据保存在$ _SESSION数组中:
[UID] => 1
[UName] => Santi
[USurname] => Márquez
[ULvl] => 1
[ULang] => en_Gb
[Logged] => 1
[UEmail] => xxx@xxx.com
[User] => smarquez
[UCreationDate] => 2015-10-14
[UAccessTimes] => 162
[UALDesc] => Administrator
[CountryCodeKPIReportsGenerator] => 2
所以,问题不在于会话创建。它已正确创建,但在Header()之后未设置$ _SESSION [“LoadFile”]和$ _SESSION [“ShowLoadingOpt”]。
另一方面,$ _SESSION [“PrevLoc”]将内容放在用户所在的上一页。由于安全原因,我从print_r结果中删除了一些变量。无论如何,我也试过使用$ _SERVER ['HTTP_REFERER'],但它也没有用。
再次感谢您的支持:)