Re: [請益] 伺服器變數

看板PHP作者 (請勿忘記密碼)時間17年前 (2008/03/20 14:24), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串4/10 (看更多)
※ 引述《JoeHorn (獅子男)》之銘言: : ※ 引述《JoeHorn (獅子男)》之銘言: : : 基本上,要硬幹也是可以的。 : : 推 arzbar:問題還是一樣 就算每支都require 但是資料還是沒辦法帶到 03/20 04:00 : : → arzbar:別的user 身上... 03/20 04:01 : : → arzbar:只能靠 file or db 去傳遞現在值 03/20 04:01 : 你們對「user」的定義是啥? : 如果「user」是單一 PHP 系統的 web wlient ,那根本就不用來問伺服器級變數, : 隨便找個開放源碼的 PHP 系統(phpBB、OSC、Gallery、...)都可以看到作法。 : 「user」這個角色必須針對的是系統開發,或是應用者,伺服器級的變數才有意義。 : (ex:某 A 在伺服器上面放 phpBB、某 B 在同一台伺服器放了 Gallery) : 而且,auto_prepend_file 的檔案可以連接資料庫,也可以放 Class、...。 我不知道各位有沒有寫過ASP或者ASP.net。ASP/ASP.net的Application變數 是一種在同一個Application範圍內的所有頁面,所有使用者,都可以存取 得到的變數。這裡的使用者指的是前來瀏覽這個Application範圍內網頁的 訪客,不是主機作業系統上的使用者。 PHP透過auto_prepend_file在每個程式前面插入該程式,這雖然可以讓每個 程式(以及使用者)共享某些資料,但是問題在於這些資料是不能被改變的。 ASP/ASP.net程式可以用類似以下的方式讀取Application變數: TotalUserLabel.Text = Application["TotalUser"].ToString(); 但是除了讀取,還可以把資料寫到Application層級去: Application.Add("TotalUser", 100); 或者 Application["TotalUser"] = 101; 整個app範圍內的所有使用(訪客)都會看到這個變數的改變。PHP的 auto_prepend_file沒有辦法做到這個。雖然可以在這個檔案裡面放入一些 變數讓每個程式(以及訪客)都讀取得到,但是當程式試圖去「變更」這些 變數的資料的時候,這些變更影響的範圍都只限於該支程式,該程式執行 完畢,下次執行的時候就又恢復成以前未變更的值了。或者頂多透過 SESSION變數,讓同一個訪客瀏覽的多個頁面都能看到之前的變更。 但是重點在於「其他訪客」並無法看到這些「變更」。這也就是Application 層級變數跟session層級變數不同的地方。 PHP如果要做到對某個參數的變更,所有訪客都看得到,那勢必必須自己 實作一些方式把這些資料儲存在某個地方(檔案或者資料庫或者甚至存在 shared memory),另外也要自己實作一些方式去讀取這些共用資料。 為什麼得自己實作?就是因為PHP本身沒有提供咩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.153.19

03/20 14:58, , 1F
所以最後一句想表達什麼?
03/20 14:58, 1F

03/20 16:35, , 2F
03/20 16:35, 2F
文章代碼(AID): #17uWC8I1 (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 4 之 10 篇):
文章代碼(AID): #17uWC8I1 (PHP)