2011-02-07 98 views
0

我寫了兩個函數setSes()getSes(),這裏我寫了session_start()。它除了IE之外的所有瀏覽器都打開了。IE中的會話問題

function setSes(){ 
$res=mysql_fetch_assoc(mysql_query("select * from table1 limit 1"));//data from DB 
$_SESSION['ses1']=$res['name'];//Its not working .... $res['name']='Raj' 
$_SESSION['ses1']="priyabrata";//Its working 
} 

function getSes(){ 
session_start(); 
print"<pre>"; 
print_r($_SESSION); 
} 

請得到一些想法

+0

可能你的問題與緩存有關。 – yoda 2011-02-07 07:44:12

+0

你的第一個問題是mysql查詢不是拉數據 – 2011-02-07 07:45:42

回答

1

PHP會話寫入一個cookie,稱爲PHPSESSID或類似的東西。您可以在php.ini中更改名稱或使用特殊的php函數。

無論如何,瀏覽器必須接受cookies才能工作。 IE(早期版本,甚至更晚版本)具有強制安全策略,這使得傳輸cookies變得困難。

我建議你閱讀this文章,該文章對此確切問題及解決方案進行了全面研究。

我一直有這個問題很多與IE瀏覽器。如果服務器時間戳不正確,或者其他服務器設置對Cookie過濾器看起來「腥」,則Cookie不被接受。當然,大多數這些安全設置可以在IE中更改並關閉,但它必須在客戶端完成,這是不合適的。

1

您需要您設置的變量首先啓動會話。你可能會這樣做,但是在你鏈接的代碼中,你不會顯示調用getSes()或setSes()的順序,而且你似乎正在動態編輯它,所以我不能真正跟上。

在這裏閱讀啓動會話功能。

http://php.net/manual/en/function.session-start.php

0

你的代碼,意味着你用getSes()從您的會話中獲取一定的價值,並setSes()如果你想設置它。現在從邏輯上講,你可以在得到它之前設置一個值,對吧?

但是通過此代碼,在設置變量時不會調用session_start()。 請致電session_start()您的腳本中的第一件事,它可能會更好....