Alice's
notes

2021/07/22 PHP Network database

PHP

PHP 提供一組結合陣列的預定變數,這是 PHP 引擎建立的變數,可以取得 PHP 程式和 HTTP 標頭的相關資訊。預定變數預設擁有全域的變數範圍,稱為「自動全域」(Autoglobals)或「超全域」(Superglobals)變數。


PHP 的 header() 函數向用戶端送出 HTTP 標頭資訊,透過送出標頭資訊來轉址或定時更新網頁、指定網頁內容和保留期限。在 PHP 程式只需送出指定型態的標頭資料,就可以執行轉址(Location)、更新(Refresh)、指定資料類型(Content-type)和保留期限(Expires)


轉址功能是指在執行 PHP 程式時,轉址到其他網址或網站的其他網頁或 PHP 程式,header() 函數是使用 Location 型態來指定轉址的 URL 網址,如下所示:

PHP 的 header() 函數可以使用 Refresh 型態指定間隔時間來定時更新網頁,如下所示:

上述 Refresh 型態的「:」符號後是間隔時間。如果在一定時間後轉址到其他 URL 網址或 PHP 檔案路徑,只需加上 url 參數,如下所示:

在 header() 函數可以使用 Content-type 型態指定 HTTP 通訊協定傳送資料到瀏覽器的資料種類,其值是 MIME 資料類型:text/html、text/xml、text/plain、image/jpeg 和image/gif 等。text/html 是預設值。

上述程式碼指定 Content-type 型態為 text/xml,表示傳送的內容是 XML 文件。

PHP 提供了一組功能,可控制發送到瀏覽器的內容以及何時。這被稱為輸出控制。PHP 引擎可以選擇將處理結果馬上輸出到客戶端的瀏覽器顯示,或先輸出到暫存的輸出緩衝區,等到 PHP 程式執行完或緩衝區已滿,才送到瀏覽器顯示,


output_buffering 設為 Off,表示不使用輸出緩衝區。 程式可以使用 ob_start() 函數啟用輸出緩衝區。


遇到下列情況才將輸出內容送到瀏覽器:

  • 執行完 PHP 程式後
  • 執行到 ob_end_flush() 或 ob_flush() 函數將緩衝區內容送出

PHP 表單處理是使用 PHP 預定變數 $_POST 和 $_GET 來取得欄位資料。


Cookies 的基礎 -

  • 一般來說,網站都需要保留一些使用者的瀏覽記錄。例如:使用者是否曾經瀏覽過網站,或一些個人資訊、偏好或選擇。
  • Cookies 就是儲存這些資料的解決方案之一,也就是用來辨識用戶。
  • Cookies 的英文原意是小餅乾,源於這些儲存在客戶端電腦的檔案尺寸都很小,Cookies 並不是儲存在伺服器,而是儲存在瀏覽器所在電腦,所以不會浪費伺服器的資源。

交談期追蹤與 Session 變數的基礎 -

  • 交談期是指使用者第一次進入網站,直到使用者離開網站為止的整個過程。
  • PHP 的交談期追蹤和 Cookie 擁有密切的關係,因為 PHP 的交談期追蹤就是透過 Cookie 建立的使用者狀態保留機制。
  • Session 變數可以在伺服端保留資料,其儲存資料能夠在整個交談期間,跨越不同 PHP 程式來分享資料
  • PHP 程式如果啟用交談期(Session)功能,當使用者進入網站,PHP 引擎就會自動指定 Session ID 編號建立一個新的交談期。

交談期追蹤(Session Tracking)也是一種狀態管理。 PHP 引擎實作交談期追蹤是使用 Session 變數,它會指定每一位瀏覽網站的使用者一個 Session ID 編號來作為識別。

Summary

今天沒有特別的截圖可分享,都是練習的檔案。第一次知道交談期覺得很特別,就像前幾天學 React 那般,可以說是在輸出前有篩選的機制一樣的東西。然後還要再去複習 cookie 與 session,曾閱讀過這兩篇文章覺得很清楚,還要再花時間多看幾遍:Session & Cookie 傻傻分不清楚:Cookie 篇Session & Cookie 傻傻分不清楚:Session 篇


另外,我也會上傳老師提供的程式碼,是非常簡易的購物車功能,以便我之後可以更深入去理解與進階使用。Shoppingcart