看板 PHP 關於我們 聯絡資訊
: 推 allanshen :用SESSION也可以,這就是在server端了 07/20 00:35 YES,這個也可以 話說如果有看過我系列問題的板友大概知道 最近我在做 CakePHP & PhpBB2 的整合 本來我就是想用 session,可是失敗了.. 這樣說好了 如果是從頭撰寫一個自己完全了解的程式,session 應該是很好用的 但我面臨的,是同事寫好的 CakePHP 架構程式 以及網路上抓來已經很成熟的 PhpBB2 兩邊都已經完整了,各有各的 session 那請問 session 的觀念要如何整合呢? 又 PhpBB2 上面關於帳號,有一個全域變數 $userdata 我們在 CakePHP 上面是 $User 好了.. 錯開的話那就好命.. 如果沒錯開呢?又可能全部的變數都錯開嗎? 如果是有 VC++ & DLL/COM & BCB 等程式聯結經驗的工程師就會知道 一個程式可以單獨運作 和寫成多人單機版被 multithread 運作,有些重點是要注意的 就是你的全域變數生命週期到底是怎麼計算的?會不會互相洗來洗去? 要不要設同步物件? 這簡直是一樣的問題 所以...我敗了 放棄用 session *_* 什麼是 session 呢? Client 端要求執行 Server 端程式時 (在這裏字眼或許改成 瀏覽/網頁) 帶入一個 ID,足以代表 Client 端 只要每次執行時都帶入這個 ID,就是同一個 Client 在執行 要有這種觀念,所謂的全域變數才不會打架 (那我有另一個問題,可不可以有靜態變數的觀念? XD 也就是輕易的計數現在有多少人瀏覽這個網頁 這個網頁被瀏覽幾次等等問題;這要有一個變數跨越所有 session) 在 PhpBB2 裏,它有所謂的 session id,是自己產生的 用該 ID 去取用 DB 在 CakePHP 端也一樣有自己維護的 session id 好吧,我收回那句話一半 session 還是很好用,只是我們自己維護 以 session 造成的 "資料存放在 Server 端"這句話 我們是自己做的 *_* 全部自己做當然就清楚狀況 那一個變數到底是每個 session 各自不同,或者跨 session 共同使用 我們也就都清清楚楚了 舉例來說,PhpBB2 裏,想計算線上人數或瀏覽次數 你只要知道它在資料庫的哪裏就好了 如果它是每個 session 各一份,那就是各自不同 如果它是每個 session 都看到同一份,那就是跨 session (比如 board config) 我的確花了很多時間學習 PhpBB2,也得到一些較完整的概念 不過我還是想問:那 php 這個語言本身,怎麼實作 session & 產生 ID session ID 是 Apache 會產生它,還是 php 產生它? ;; 剛才試了 session,搞懂一些觀念 1.從 php.ini 裏面,有規定 session 的行為 比如,session 檔將存在哪裏 2.session 檔基本上就類似於 serialize echo serialize($_SESSION) 看起來實在是差不多,但最精確的 echo session_encode 就是一模一樣,將這個字串存起來,反向 call session_decode($store) 就可以把 session 資料灌回 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.179.152 ※ 編輯: HuangJC 來自: 61.59.179.152 (07/20 14:18)
starjou :session 是陣列,你可以用 print_r 來觀察 07/20 16:25