程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 長沙發上的對話(一)

長沙發上的對話(一)

編輯:關於PHP編程

開始治療

心理醫生: 好。你今天感覺怎麼樣,維克多?

病人: 不太好,醫生。我近來感到有點憂郁...

心理醫生: 那是為什麼,維克多?

病人: 我不知道,醫生。我睡眠不太好,而且我一點胃口也沒有。有一天我們去一個意大利餐館,要了通心面 -- 但時當他們把它端上來的時候,我一點也吃不下去。我就一直看著它,在我的頭裡一直回蕩著“女高音”的主題曲...

心理醫生: 家裡怎麼樣?

病人: 都很好,我想。Marge大部分時間都在廚房,試她從網上下載的菜譜。孩子們每天很早就出去了,一般在吃飯時才看得見他們,但是現在他們開始在Burger King吃了。那我也不能責備他們。

心理醫生: 工作 - 都很好吧?

病人: 不太好 - 我有一個虐待成性的魔鬼老板,他打算打我的生活變成象Dilbert Zone一樣!

心理醫生: 跟我說一說他吧。

病人: 好,你知道我是做什麼的 - 我是一個在Used Socks. Inc.的web程序員。下個星期我們的新網站就要使用了,我們正在做著完全不同的東西 -- 一個在線商店,供人們出售他們的舊物。我們得到了一些好心人的投資 - 6百萬元,如果我們成為在web最受歡迎的舊物門戶,我們還可得到更多的投資。

心理醫生: 聽上去對你不錯嘛。

病人: 你說的對。但是,然後有一天老板進來,他說他交給我一項開發在線商店購物車的工作。他明確地要求我用什麼叫“session”的東西。當然,只不過讓事情變得有趣,他說他想在兩天內做完並能運行...虐待狂、變態!

心理醫生: 有問題嗎?

病人: 有,特別是首先我根本不知道“session”是什麼,或怎麼去用它。我意思是說,我原以為一個session 就是對一個病人的短期治療 -- 有一點象我們正在做的一樣。

心理醫生: 哦,維克多,維克多...這就是麻煩你的事嗎?我想我可能有東西能幫助你...

西雅圖無狀態

  開低級玩笑的人為了給能聽到談話的年輕女性留下印象,互相之間最經常說的事情之一就是:“HTTP是一種無狀態協議,Internet是無狀態開發環境”。用簡單的話來講,HTTP(HyperText Transfer Protocal )協議,作為web的骨干,不能夠記住與一個網站連接用戶的身份,所以對web頁的請求被看作是唯一和獨立的連接,與在它之前的連接無論如何都沒有關系 -- 這一點與今天很多愛冒險的十幾歲的年輕人的行為很象,他們每天喝? 夜,第二天早晨醒來對發生過什麼都不記得了,晚上再出去做同樣的事,一遍又一遍...

  現在,如果你是漫無目的地從一個站點沖浪到另一個,沒有什麼問題。但是當你想從Amazon.com上買幾本書會怎麼樣呢?“在一個無狀態的環境中,記住所有在你的購物單上的物品是非常困難的,因為HTTP協議的這種無狀態的性質使得跟蹤選中物品是不可能的。

  因此就要求一種能夠使記住狀態成為可能的方法,能夠跟蹤用戶的連接並且保存連接特定數據的東西。因此產生了“cookie”,它可以允許Web 站點在客戶系統的一個文件中保存客戶特定信息,並且當任何時候請求時都可以從文件中取出信息。所以,在上面的購物車例子中,被選中的商品可以加到cookie中,並且在消費者結帳時,可以被取出並呈現在購物單中。

  基於cookie的解決方案存在一個問題,那就是它要求cookie能夠被客戶所接受。所以,有另一種解決辦法就是使用“session”,當一個客戶訪問一個Web站點時,用它來保存特定的一小塊數據。這個會話(session)數據在整個訪問期間被保存下來。一個session可以被看成一個信息籃,它保存著主機的變量對。這些變量對在整個訪間期間都存在,並且可以在任何時刻被處理。這個方法對協議的無狀態的特點提供了一流的解決辦法,並且在今天很多大型的網站上,可以跟蹤和保存信息,用於個人和商業交易。

  每一個被創建的session 都有一個唯一的標識串,這個串被發送到客戶端,同時在服務端也生成了同樣唯一標識串的入口,或者放在文本文件或者在一個數據庫中。現在就可以注冊任何的session 變量 -- 這些普通的變量可以保存文本或數值信息,可以通過session 被讀出,或寫入。

  現在,如果你已經跟隨著開放源碼運動,你已經知道了PHP ,在這個星球上最熱門的腳本語言。最新的版本是PHP4,包括了對session的創建和管理的支持,在下面的幾頁中,我們將向你展示如何使用它。如果你還在使用PHP3,不要失望 -- 我們也將涉及PHPLIB,它包括一組強大的PHP對象,可以在基於PHP3的站點上加入無縫的session管理。

  在下面幾頁中,我們假設你已經有一個支持PHP4或PHPLIB的站點。如果還沒有,你應該下載這些包,並且將它們安裝到你的開發機器上去。PHP4,是一個質量優良的代碼,可以在PHP站點 http://www.php.net找到,最新的PHPLIB版本可以在http://phplib.netuse.de/找到。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved