首頁  >  文章  >  後端開發  >  SESSION的坑

SESSION的坑

WBOY
WBOY原創
2016-08-08 09:26:101191瀏覽



          

1. 

Warning: Cannot send session cookie - headers already sent WarningWarning : Cannot send session cache limiter - headers already sent 

分析與解決方法

:使用程序

分析session_start()

時,之前已經有實際的

html內容輸出了。或許你說,我沒有啊,我只不過是echo

print

一條訊息了。很抱歉,你的echoprint語句所產生的輸出,就是實際的html內容輸出。解決這類問題的方法是,將你的session_start()調到程式的第一行 2. 錯誤提示 :opens

錯誤提示 :opensopens50500078(73:0375:037(3:00572F5:2098(3:00572F5:2097(cLvv] a39376b873f4daecf239891edc98b5, O_RDWR) failed 

分析解決方法

: 

出現這樣的錯誤語句一般是因為你的php.ini

中關於

session.save_path session.cookie_path 

設定置為 

session_save_path temp 然後在c: 目錄下建立一個temp目錄,即可 

 

3.  

3.   Warning: Trying to destroy uninitialized session in 

分析解決方法

:

 

出類這樣的提示,一般情況都是你直接調

_de很多的朋友認為session_destroy()

函數可以獨立的運行,其實不然。解決的方法是在你調

session_destroy()函數之前,要用

session_start()

開啟session的函數。 

 4.問題:   最簡單的方法是: echo SID; ? session_id(

'0-2-c-d-e' );

session_start();_f 'yes';

echo SID;

?>

我的程序,在呼叫header函數之前沒有任何的輸出,雖然我include了一個

config.php.問題1同樣的錯誤呢,是不是因為我在

header之前用了session_start()?

:或許你確實認真的檢查了你的php程序,在引用header()之前確實也沒有任何的輸出,並且在你的中也沒有任何的輸出!但是你是否用遊標鍵在?>這個PHP代碼結束語句後移動檢查呢?那你會發現在?>這個後面,有一個空行或幾個空格,你刪除了這幾個空行或空格,那麼問題就解決了。 註:此問題,會出

PHP4.1.2

中,較高版本,沒有測試過。  

6.

:用它頁後登錄頁面session:用手? 答:最簡單的方法是 

 

session_start(); 

_ $login != true) { 

echo "你沒有登陸

"; 

exit;   7.

:

我用session_register()

註冊了

session變量,可是當我用

header

或用一下

script

session所註冊的變數值。請問如何解決? [未測試成功] ? session_start();  $ok = 'love you'; session_register('ok'); 

:)

?> 

 

next.php 

 

); echo $ok; 

?> 

解決的方法: 

當你用header

函數或window.location

函數或window.location

。的遺失,關於這個問題的原因,至今仍沒有一個詳細的答案。 

不過有解決的方法。如下圖所示 

header("Location: next.php" ."?" . SID); 

id做為一個參數,傳到後一個頁面。

 

8.session如何傳數組 ); $data=array(1,2,3,4 ); 方法是​​先註冊後賦值 

 

_GET_VARS['**']

方式來存取session

值呢?

回答:可以,你可以使用以下global數組來存取session

 

$ _SESSION 

程式

);

); $username = 'stangly.wrong'; 

session_register('username'); 

echo $HTTP_SESSION_VARS['username'];  echo $_SESSION['username' ]; ?> 

請參考此例程修改符合您自己的程序。 

 

問題10:session_unregister() 和 session_destroy(和 ? 

session_unregister()函數主要作用是註消目前的一個session變數。不過要注意的是,如果你用$HTTP_SESSION_VARS$_SESSION在當前頁面中引用sessionsession變數。 session_destroy()

是清除目前的

session環境。意思是說,當你用session_destroy()函數後,那麼你就不可能再用session_is_registered()來檢測session的變數了。但是要注意的是他不能清除global中的session或使用了session cookie的中的session cookie不要用$HTTP_SESSION_VARS $_SESSION來存取session.(譯自php.net) 

if(isset($_COOKIE [session_name()])) { 

session_start(); 

session_destroy()); )]); 

}

 

 

?

session_start();

$_SESSION[

'is_admin'] = 

'yes'

'no';

echo $_SESSION['is_admin'];

?>

?>當描述

?>。 php.ini中,register_globals = On時,定義的變數會改變同名session。如果採用

session登陸,就會造成隨便登陸的問題。

 

  以上就介紹了SESSION的坑,包括了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn