2009年2月24日 星期二

Session注意事項

很多人要使用session時都發現,為何沒有辦法讀出來沒有值呢?像底下這樣子

<?php
echo $_SESSION['name']; //null
?>


這是因為前面沒有加上session_start();,正確的Code應該這樣子寫

<?php
session_start();
echo $_SESSION['name']; //null
?>


但是有時候還是會出現一些錯誤,例如常見的

cannot send session cache limiter-headers already sent (output start at ............)


ok,出現這樣子的訊息有兩種可能性,目前我所遇到的狀況也只有這兩種
1.
在使用session_start();之前輸出了資料,例如

<html>
<head>
</head>
</html>


諸如此類的型態都會產生錯誤,最好的方式就是直接在每個要使用session的頁面直接第一行就執行session_start();

2.
引用了UTF-8格式的文件,解決這種方式有兩種

第一種方式:
在php.ini底下修改,將output_buffering = off,改成output_buffering = 4096

第二種方式:
就是將檔案格式改成utf-8 無 BOM的格式,改的方式就是
開啟notepad++>格式>轉換至UTF-8碼無BOM



沒有留言:

張貼留言

Facebook