簡體   English   中英

PHP會話變量和身份驗證

[英]PHP Sessions Variables & Authentication

我有兩個頁面,我需要在兩個頁面之間傳遞會話信息。 這是第一頁。

<?php
session_start();
echo session_id()."<br>";
echo $_SESSION['test']."<br>";

第二頁。

<?php
session_start();
echo session_id()."<br>";
$_SESSION['test'] = 'test';
echo $_SESSION['test'];

第二頁位於不同的目錄(相同的域)中,並且啟用Windows身份驗證。 第一頁正在使用匿名身份驗證。 從輸出中可以看到會話ID是相同的,但是第一頁沒有回顯第二頁中的測試變量集。

我在Server 2012 R2的IIS 8.5中運行PHP。

任何幫助表示贊賞。

為了澄清,我先調用第二頁,而第一頁將不顯示該變量。

您需要先使用值初始化變量,然后再使用它。

First run page2.php so, that value of $_SESSION['test'] is set to test 
using $_SESSION['test'] = 'test';
Now, run page1.php there you can see the value of $_SESSION['test'] 
using echo $_SESSION['test']."<br>";

您還可以按照以下步驟以簡單的方式使用會話,從而不必一次又一次地使用session_start()

1. config.php having session_start();
2. page1 having include_once('config.php');
   echo session_id()."<br>";
   echo $_SESSION['test']."<br>";
3. page2.php having include_once('config.php');
   echo session_id()."<br>";
   $_SESSION['test'] = 'test';
   echo $_SESSION['test'];

嘗試在第一頁中關閉會話,調用第二頁時,您的會話文件可能仍處於打開狀態,因此您看不到數據。 嘗試將session_write_close()添加到所調用的第一頁。

http://php.net/manual/en/function.session-write-close.php

問題出在會話保存路徑上。 我將路徑更改為兩個目錄都可以寫入且可以正常工作的位置。

暫無
暫無

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

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