昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-05-16, 23:21:43
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: 為增進論壇品質,全面更新硬體設備,經費有限,請各位踴躍贊助論壇!!


+  麻辣家族討論區
|-+  網頁設計
| |-+  PHP
| | |-+  Session記錄物件的問題
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: Session記錄物件的問題  (閱讀 747 次)
taocenter


電子郵件
Session記錄物件的問題
« 於: 2005-05-13, 16:59:48 »

在「PHP+IIS+SQL Server 網站資料庫徹底研究」的6-2頁
倒數第二段說道:
------------------------------------------
完成Session的變數註冊後才能存取Session變數資料值,例如:

程式碼:
<?
session_register("myname"); //註冊session變數
$_SESSION["myname"]="Charles"; //設定session變數值
echo $_SESSION["myname"]; //輸出session變數值
?>

在上例中,小誌並沒有使用「session_start()」函數告知PHP我們要使用Session陣列,為何能直接使用Session呢?原因在於PHP為我們預設了一個名為「PHPSESSID」的Session陣列了!不過千萬要小心!這麼做的話,在後續的程式敘述中將不能改變Session變數的值,除非您在變動Session變數值之前先行呼叫「session_start()」函數!
------------------------------------------

可是我沒有使用session_start()函數,卻可以改變Session變數的值,請問是什麼原因?

程式碼:
<?
session_register("myname"); //註冊session變數
$_SESSION["myname"]="Charles"; //設定session變數值
echo $_SESSION["myname"]; //輸出session變數值

$_SESSION["myname"]="Chih-Hung Tsao"; //沒有使用「session_start()」,而改變session變數的值
echo "<p>".$_SESSION["myname"]; //輸出session變數值
?>

執行結果是:
Charles
Chih-Hung Tsao
已記錄
小誌
*
離線 離線

會員性別: 男
文章: 574


作業系統 Windows XP SP2
CPU P4 1.6G
OFFICE版本 Office 2003

個人網站
Re: Session記錄物件的問題
« 回覆文章 #1 於: 2005-05-13, 17:40:15 »

 $_SESSION 及 $HTTP_SESSION_VARS 方式並不會呼叫 ,須在使用前事先 session_start( ) 才有作用。
在session_register( )函數前沒有使用 session_start( )來啟動時,會自動呼叫session_start( );
已記錄

為了論壇的永續經營,您不妨
贊 助 論 壇
頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
跳到: