PHP会话变量不会跨页面

时间:2013-07-15 19:36:32

标签: php session session-variables

您好我创建了两个会话变量,目的是将查询的ID列表存储在以逗号分隔的字符串中,以便稍后分解为数组。当我在带有apache的localhost上运行代码时,代码工作正常;但是,当我在实际服务器上传文件时,主页面中声明的$ _SESSION变量永远不会被转移到第二位。我在case.php页面上做了一个if语句来测试它,我也做了一个var_dump(),它们都显示为NULL。

我想知道我需要配置服务器吗?因为它读取PHP并完成所有其他功能而没有任何错误。感谢任何帮助或评论。

请参阅以下代码:

主页: patients.php

<?php 
// store session data 
session_start(); 
// store SQL line

// store patient ID
$_SESSION['pid']='';

// store case ID
$_SESSION['cid']='';


...
while ($record = mysql_fetch_row($result)) {

    $patient = $record[0];
    $statusD = $record[1];
    $substatusD = $record[2];
    $caseCount = $record[3];
    $statusReason = $record[4];
    $dateReviewed = $record[5];
    $caseID = $record[6];
    $lastUser =$record[7];  

    //statusFlagged($patient,$caseID,$dateReviewed);            
    $statusFlagged = $record[8];
    //StatusFlag should be working as of 5/30/2013. Please double check

    // comma-delimited patient ID
    $_SESSION['pid'].=$patient.',';

    // comma-delimited case ID
    $_SESSION['cid'].=$caseID.',';

下一页: case.php

<?php 
// start session data 
session_start(); 
if(isset($_SESSION['pid'])) {
echo "Your session is running " . $_SESSION['pid'] . "and" . $_SESSION['cid'];
}
else { echo "Session not running";}

$patientIDString = $_SESSION['pid'];
$caseIDString = $_SESSION['cid'];
$patientIDArray = explode(',', $patientIDString);
$caseIDArray = explode(',', $caseIDString);

1 个答案:

答案 0 :(得分:0)

感谢您提供的有用建议。我找到了解决方案,确保session.save_pathphp.ini下存储的路径可以访问。特别是如果您正在使用Apache。需要确保目录的所有者与apache相同。

更改路径和读/写访问权限后,一切正常。