簡體   English   中英

PHP會話變量不在頁面之間保存?

[英]PHP Session variables not saving between pages?

登錄頁面:

<?php

session_start();

#echo session_id ();
$_SESSION["auth"]= "yes";

echo '<a href="Portaltest.php?t='.time().'">portal page link.  Auth set to: {$_SESSION["auth"]}</a>';

?>

門戶頁面:

<?php session_start();

echo "auth = {$_SESSION["auth"] } <BR />";
echo session_id ();


?>

以某種方式在兩頁之間丟失了auth會話!

編輯

這是一個測試網址:

http://proserv01.services.lyris.com/NFPInsurance/UnsegmentedMemberReport/logintest.php

在進行故障排除時,我傾向於做一些事情,但讓我們從你的代碼開始。

這是您的頁面代碼的更新版本,因此您實際上看到存儲在$ _SESSION ['auth']中的值(您的引號導致了一些問題):

<?php

session_start();
$_SESSION["auth"] = "yes";
echo '<a href="Portaltest.php?t='.time().'">portal page link.  Auth set to: ' . $_SESSION["auth"] . '</a>';

?>

以下是門戶網站頁面的更新版本,它在關閉大括號后刪除了額外的空格:

<?php

session_start();
echo "auth = {$_SESSION["auth"]} <BR />";

?>

現在,如果您沒有看到帶有這些修訂的auth,您可以嘗試:

  1. 更改門戶網站中的代碼,以便它只是轉儲會話,以便您可以看到您所擁有的內容:session_start(); 后續代碼var_dump($ _ SESSION);
  2. 檢查以確保啟用錯誤報告,因為PHP可以幫助您快速識別許多潛在問題(例如,索引不存在,標題已經發送等):ini_set('display_errors','1'); 使用error_reporting(E_ALL);
  3. 您可以檢查PHP配置文件(php.ini)以確保沒有直接導致會話問題的設置。

注意:僅用於測試目的。

我不確定預期結果是什么,但我會將其作為答案提交給PHP注釋中的解釋。

嘗試一下:

<?php

session_start();
$_SESSION["auth"]= "yes";

// will echo: portal page link. Auth set to: yes
echo '<a href="Portaltest.php?t='.time().'">portal page link.  Auth set to: ' . $_SESSION["auth"] . '</a>';
echo "<br>";

// will echo: auth = yes
echo "auth = {$_SESSION["auth"] } <BR />";
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM