1

ログインページ:

<?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 ();


?>

どういうわけか、2 つのページのauth間でセッションが失われます。

編集

テスト URL は次のとおりです。

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

4

2 に答える 2

3

セッションのトラブルシューティングを行うとき、私がよく行うことがいくつかありますが、コードから始めましょう。

これはページコードの更新版で、実際に $_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 />";

?>

これらのリビジョンで認証が表示されない場合は、次を試してください。

  1. ポータルのコードを変更して、セッションをダンプするだけで、何が得られたかを確認できます。var_dump($_SESSION);
  2. PHP は、多くの潜在的な問題を非常に迅速に特定するのに役立つため、エラー レポートが有効になっていることを確認します (たとえば、インデックスが存在しない、ヘッダーが既に送信されているなど): ini_set('display_errors','1'); error_reporting(E_ALL);
  3. PHP 構成ファイル (php.ini) をチェックして、セッションの問題を直接引き起こす設定がないことを確認できます。
于 2013-08-20T02:38:19.033 に答える
1

注: テストのみを目的としています。

期待される結果がどうなるかはわかりませんが、これを回答として送信し、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 />";
?>
于 2013-08-20T02:03:50.330 に答える