350 likes | 432 Views
Introduction to PHP. 靜態網頁. Step 1 : Client 透過 Internet 向 Web Server 提出瀏覽某個 HTML 檔案的需求。 Step 2 :若 Web Server 上有該網頁的話,便將其內容回傳給 Client 。. 動態網頁. Step 1 : Client 透過 Internet 向 Web Server 提出瀏覽某個 PHP 檔案的需求。 Step 2 : Web Server 會先將其內容轉給 PHP 解譯程式處理。
E N D
靜態網頁 • Step 1:Client 透過Internet 向Web Server 提出瀏覽某個HTML 檔案的需求。 • Step 2:若Web Server 上有該網頁的話,便將其內容回傳給Client。
動態網頁 • Step 1:Client 透過Internet 向Web Server 提出瀏覽某個PHP 檔案的需求。 • Step 2:Web Server 會先將其內容轉給PHP解譯程式處理。 • Step 3:處理過程中,可搭配Database 共同作業(讀取/寫入資料)。 • Step 4:然後再將處理過的內容回傳給Web Server。 • Step 5:Web Server再將其回傳給Client。
什麼是PHP? • PHP原名為Personal Home Page,PHP3之後改名為Hypertext Preprocessor 。 • PHP可嵌入HTML之中,彌補純HTML 碼無法進行運算處理的缺憾,為目前廣泛運用在網頁程式撰寫的語言之ㄧ。 • 語法結構和C/C++、Java等語法相似。
什麼是PHP? • *.html 的網頁會被Web Server 直接送出;*. php的網頁會先經PHP解譯程式處理後再送出。 • 即使網頁含有PHP 程式碼,經處理之後輸出到使用者的頁面也只會只剩下HTML 碼;原始內容可以受到保護(不被竊取),使用者也無須安裝PHP軟體。 • 任何的*.php檔皆是透過Server端的php.exe來解譯程式碼。
初探PHP • PHP開頭範圍標籤 <?php PHP語法 ?> <? PHP語法 ?> • 副檔名必為.php 經過php.exe的處理後, 會產生給client的網頁符合HTML語法 <html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html> 將php語法寫在php標籤裡, 如此一來, php.exe就知道要處理這段程式 <html> <head> <title>Example</title> </head> <body> Hi, I'm a PHP script! </body> </html>
初探PHP • 註解方式 /*註解*/ //註解 • PHP語法不一定要寫在HTML語法中,可以在上面、下面、獨立一份文件。 • 一個程式敘述結束時要有;
PHP變數與資料型態 • PHP主要有以下四種變數類型: • 整數(integer) • 浮點數(float) • 布林(boolean) • 字串(string) • 定義變數的方式是變數名稱前面加個$即可使用。 • 變數名稱格式必須以英文字母或底線作為開頭。 • 變數有分大小寫
PHP變數與資料型態 • 使用PHP變數不需預先宣告變數及資料型態。 • 給予變數值後,PHP會依照所給定的值自動定義型態
PHP變數與資料型態 • 變數的運算
簡單練習PHP變數 PHP原始碼 <?php $pi=3.14; $area=$pi*5*5; //計算半徑為5的圓面積 echo "半徑為5的圓面積為$area<br>" ?> 傳回來的html原始碼 半徑為5的圓面積為78.5<br> 顯示的結果為
PHP流程控制 PHP原始碼 <?php $a=0; if($a>10){ echo "if"; } elseif($a==10){ echo "elseif"; } else{ echo "else"; } ?> • if(條件1) { 條件1成立便執行此段程式; } elseif(條件2) { 條件2成立便執行此段程式; } else { 以上條件皆不成立則執行此段程式; } 在瀏覽器顯示 else
PHP流程控制 • while(條件) { 條件成立便一直重複執行此段程式;直到條件不成立為止; } 在瀏覽器顯示 0 1 2 3 4 5 6 7 8 9 PHP原始碼 <?php $a=0; while($a<10){ echo "$a<br>"; $a++; } ?>
PHP流程控制 • for(初始值; 條件; 間隔) { 當條件成立便執行此段程式;直到條件不成立為止; } 在瀏覽器顯示 PHP原始碼 0 1 2 3 4 5 6 7 8 9 <?php for($a=0;$a<10;$a++){ echo "$a<br>"; } ?>
PHP流程控制 PHP原始碼 <?php $a=0; switch($a){ case 0: echo "0"; break; case 1: echo "1"; break; default: echo "x"; break; } ?> • switch(條件) { case 條件1: 若條件等於條件1則執行此段程式; break; case 條件2: 若條件等於條件2 則執行此段程式; break; default: 若無相同條件則執行此段程式; break; } 瀏覽器顯示 0
傳遞資料 • 現在的網頁不單單只是單向的顯示網頁給使用者端, 更可以和使用者作互動 • Ex: Google搜尋引擎 • 因此需要製作一個使用者介面讓使用者可以輸入的動作 • 使用HTML來設計一個輸入的介面 • 表單(Form) • Web server必須也要有個相對應的程式可以處理使用者輸入的資料, 並給予適當的回應
表單(Form) • 先定義出一個表單, 在表單裡面可以有很多輸入欄位 • 文字欄位(Text), 密碼欄位(Password), 單一選擇鈕(Radio), 多重選擇鈕(Check Box), 文字區塊:可輸入大量文字(Text Area) • 會一次將一個表單裡面所有的輸入欄位送給web server
表單(Form) • 表單的傳送方式有GET和POST • GET:最大長度為255 ,會於網址尾端加上?變數名稱1=值&變數名稱2=值…。http;//localhost/get.php?a=1&b=2 • POST:所傳訊息不會顯示,資料長度無限制。(伺服器的php還是會設定一限制) 當資料傳送到server後, 由哪個php程式來處理這些資料 選擇要使用GET或POST方式傳送資料
使用KompoZer製作表單 先定義出一個表單
定義表單 幫這個表單取個名字 使用哪個php來處理資料 選擇用GET或者是POST來傳送資料, 在這裡先選GET
定義表單欄位 按下Submit Button就會把資料送出 Text Area可提供大量文字輸入, 如:留言板 常用的表單欄位都在Form Field裡
Text欄位 虛線範圍內即代表表單的內容範圍 欄位的名稱最好使用英文 將姓名的Text欄位取名為name, 之後傳送給server, name=John (假設輸入名字為John)
Check Box欄位 如果勾選是本系學生, 送給server的資料為check=on
Radio Button欄位 因為Radio Button只能選擇其中一個, 所以他是一個Group具有多個選項, 所以同屬一個Group必須使用相同的Group Name 如果選擇性別為男, 則送出的資料為sex=boy
Text Area欄位 Text Area可讓使用者輸入大量文字 定義Text Are的大小 假設在TextArea輸入Hello World, 則送給server的資料為Message=Hello+World
Submit Button欄位 • 更詳細的網頁製作 按下Submit Button即代表將表單資料送出 Field Value的值會被顯示在button上
送出的資料為 http://pads8.cs.nthu.edu.tw:8000/get.php?key=John&check=on&sex=boy&Message=Hello+World&submit=submit
PHP程式如何處理GET的資料 • 使用GET傳到PHP的變數會存在一個名為$_GET的變數中,而這一個變數是一個陣列 • http;//localhost/get.php?a=1&b=2則用$_GET[‘a’]; $_GET[‘b’]; 來接收資料
範例 使用PHP程式來處理資料 使用GET送出的資料 <?php $name=$_GET['name']; $sex=$_GET['sex']; $check=$_GET['check']; echo $name; echo "性別是$sex<br>"; if (strcmp("on",$check)==0){ echo "就讀本系"; } else{ echo "不是本系學生"; } ?> http://pads8.cs.nthu.edu.tw:8000/get.php?key=John&check=on&sex=boy&Message=Hello+World&submit=submit 和PHP的String變數有關的function
今日練習 • 製作披薩訂單網頁 • 假設店裡只有三種披薩, 且一個訂單只能選擇其中一種披薩 • 如果訂購金額超過400元, 則不需外送費用; 若沒超過400, 需加收外送費用50元 • 請印出顧客此次消費的總金額
Reference • PHP5網管實驗室 • http://www.php5.idv.tw/html.php?mod=article&act=index&cid=3 • CGI程式入門 • http://ind.ntou.edu.tw/~dada/cgi/CGIprog.htm • “PHP入門教學”,Little Chen, 虎尾科技大學資訊工程系 • http://www.csie.nfu.edu.tw/phpBB2/download.php?id=1732&sid=2831850096e414beadd50967981c2536 • PHP程式設計講義 • http://km.tceb.edu.tw/~wsx/php/index.htm