狠狠撸

狠狠撸Share a Scribd company logo
建構動態網站 第2講
PHP (續)
講師:David Malan
哈佛大學公開課
by Bater 2014.3
課程連結
前情提要
● 空間申請
● 域名申請
● 颁狈础惭贰设定
最佳實踐
通常會設定網址在根目錄下一層(如http、
htdocs、public_html 等,名稱可以不同),避免惡
意使用者窺探重要文件 (例如config.php)
此為最佳實踐!!
非放在這個目錄下的檔案無法透過網址直接瀏
覽,增加安全性
XML:
● 類似可以自行定義的HTML
● 由很多的Key -Value (鍵-值)組成
● 不用自己寫解析程式,就可以輕易的用標準規則取得裡面
的內容
● 得到一個很大的Hash或Map
● 有時候資料量不大或使用者不多,(例如小型專案)可以用
XML讀寫資料取代資料庫
XML優點
● 現成的讀寫方法支援,不需要自己寫
● XML格式校正,可以預防錯誤
● 有層級概念 (CSV等逐行資料型態所缺乏,MySQL雖然也
沒有,但可以合併)
● 可以實現搜索的功能 (透過XPath,XML路徑語言)
XML注意事項
1. 檔案大小最好在100MB以內,否則效能很差
更多資料儲存方式
CSV
● 逗號分隔變量
● 資料本身如果有逗號,就
需要用引號括起來
● 很容易下載,用Excel讀取
TSV
● TAB分隔變量
PSV
● 豎線分隔變量
Q&A
Q:如何決定該使用XML還是
database存取資料?
A:沒有一定,一般而言以效
能為考量。
因為XML每次讀取都需要整
份檔案從頭讀到尾,如果每分
鐘會有數名使用者同時使用,
建議就要轉換為資料庫,因為
有緩存會比較省效能
Q:XPath是不是也可以作到
類似SQL的效果?
A:有一種語言叫做XQuery,
但並未有重大突破,一般而言
還是SQL較具彈性,要怎麼料
理資料都可以
● X-powered-by
回傳瀏覽器運行的server版本,例如PHP 5.2.5
但有安全疑慮,並非最佳實踐
只要改一行設定就可以把版本號隱藏
● session
意味著保存
伺服器保存瀏覽器的狀態
● cookie
有安全性疑慮
可能會被別人截取內容(例如開放的WIFI),盜用狀態與帳號
安全性的解決方案
用SSL加密 (HTTPS協定)
缺點:
● 佔機器運算資源
● 需要IP唯一 (因為host也被加密了)
● 要花錢
超全域變數
$_GET、$_POST
$_SESSION
● 就像容器
● 前兩者是使用者送出的表單內容,後者開發者可以自己決
定把哪些放進去
● 預設是沒有內容的
$_SERVER
內建兩個變數 (更多)
$_SERVER["HTTP_HOST"]
$_SERVER["PHP_SELF"] (小心跨站攻擊)
樣式與資料處理分離
● 有種作法是一個PHP表單作樣式
● 另一個處理流程
● 但這樣有個問題,如果流程有錯誤
● 要回到樣式,還需要顯示之前的輸入內容
PHP內建函式
● htmlspecialchars()
○ 將特殊字元固定為文字
● isset()
○ 檢查變數是否存在
● rtrim()
○ 去除字尾空白
SEESION特性
SESSION通常存在一個叫/temp的目錄下
需要用的時候會去讀取
一段時間會系統清空
(也可以用存入資料庫取代,就會永久保存)
三種提示等級
● 注意
○ 輕微,可以不理會
● 警告
○ 不太對勁,但可以略過錯誤繼續執行
● 錯誤
○ 程式沒辦法繼續跑下去
DEMO
● 線上DEMO網址
● DEMO程式碼
● 课程笔顿贵

More Related Content

哈佛公開課_E-75 建構動態網站 第2講 PHP(續)