【发布时间】:2011-12-04 11:36:52
【问题描述】:
我有一个 PHP Session 变量集:
$_SESSION['token']=$_POST['token'];newOrder.php。
还设置为$_SESSION['orderId']、$_SESSION['stylesUrl']、$_SESSION['brand'] 和$_SESSION['currentBalance']
newOrder.php 上有一个链接到templateSelection.php(同一服务器)。
在newOrder.php 的底部,我使用以下输出执行print_r($_SESSION):
[token] => {61424637-6E77-BCE0-A10B-3F3E9F74753E}
[currentBalance] => 991.0000
[stylesUrl] => /Management/Stylesheets/basic.css
[brand] => YM
[savedOrderReturnURL] => /Management/DirectMail/DirectMailSaveOrder.aspx
这直接位于newOrder.php 页面的底部,之后只有两行HTML。当用户单击指向templateSelection.php 的链接时,将处理以下 php:
<?php include("php/db.php");
header('P3P: CP="NOI ADM DEV COM NAV OUR STP"');
//$_SESSION['username']="bymtest";
//We seem to be getting an orderId in the session variable even though there wasn't one just before this page was called.
$debugMode = true;
if($debugMode) {
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
die();
}
php/db.php 内部是:
$dbhost = 'host';
$dbuser = 'un';
$dbpass = 'pw';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$db = mysql_select_db("db");
session_start();
现在这是奇怪的部分。在 Firefox 和 chrome 中,templateSelection.php 中的 print_r 输出:
[token] =>
[currentBalance] => 991.0000
[stylesUrl] => /Stylesheets/basic.css
[brand] => YM
[savedOrderReturnURL] => /Management/DirectMail/DirectMailSaveOrder.aspx
但是在 Opera 和 IE9/8/7/6 中它输出
[token] => {61424637-6E77-BCE0-A10B-3F3E9F74753E}
[currentBalance] => 991.0000
[stylesUrl] => /Management/Stylesheets/basic.css
[brand] => YM
[savedOrderReturnURL] => /Management/DirectMail/DirectMailSaveOrder.aspx
session_start 总是设置,我已经在多台计算机上尝试过......这毫无意义!这也曾在同一服务器上的不同 URL 上工作过。
【问题讨论】:
-
试试
echo htmlspecialchars(print_r($_SESSION, true));。以防万一。并在您设置会话值的页面上的$_POST数组上执行相同的操作。 -
在firefox中查看页面的来源,应该是正常的!
-
@hakre 谢谢,
templateSelection.php(空白)上的输出仍然相同。newOrder.php提供与以前相同的输出,并且 post 的值相同:[token] => {61424637-6E77-BCE0-A10B-3F3E9F74753E} -
我建议始终将
session_start()作为 PHP 执行期间调用的第一个函数。 -
如果
newOrder.php$_SESSION的末尾仍然包含所有值,则需要验证(在打开templateSelection.php之前)该值已实际保存到磁盘上的会话文件中会话文件查看器,这是一个:github.com/ktomk/Serialized/blob/master/examples/03-session/…
标签: php firefox session google-chrome