課程重點:表單的建置與 PHP 變數的取得
透過 vim 進行 PHP 網頁的編輯
- 請使用 http://203.71.39.250/intoserver/
的說明來登入鳥哥的伺服器,並進入你的 www 目錄,以建立我們上課所需要的 .php 網頁。
常用的 Linux 指令如下:
指令名稱 | 說明 |
ll | 顯示該目錄下的檔名,可以查閱你所需要的檔案名稱; |
cd 目錄名稱 | 可以變換目錄,其中必須要注意,『 .. 』代表上層目錄,『 ~ 』代表家目錄; |
mkdir 新目錄 | 建立新的目錄; |
rm 檔名 | 刪除某個檔案,但不能夠是目錄 |
rm -r 目錄 | 用在刪除目錄 |
vim 檔名 | 用 vim 去編輯某個檔案,該檔名若不存在,代表編輯新檔! |
- 使用 vim 時,需要知道,vim 共有三種模式,分別是:
- 一般模式:可進行移動、複製、整行刪除等動作;
- 編輯模式:可以有插入以及取代兩種基本模式
- 指令列模式:可用來儲存檔案或離開檔案等
常用的指令包括有(請注意大小寫並不相同!)
指令名稱 | 說明 |
G (100G) | 用來跳到某一行,例如左邊括號內,就是跳到第 100 行的意思 |
dd (10dd) | 刪除游標所在的那一行,或者是底下的 10 行 |
i, R | i是插入模式, R 是取代模式!注意大小寫並不相同! |
[Esc] | 這個按鍵是回復到一般模式的按鈕!很重要∼搭配 i 或 R 可以進行編輯! |
:w | 這個是寫入的意思! |
:q! | 不儲存離開 |
:wq | 儲存後離開 |
- 請用 vim 去查閱一下你的選單檔名,然後再利用 vim 去建立一個 .html 的檔案,內容隨意建置,作為一個簡單的練習。
處理表單之一:透過 form 與 input 標籤
- form 的標籤非常重要!他可以讓你在網頁所輸入的資料『上傳』到伺服器上!上傳的方法有兩種:
- get:利用字串方式傳送,資料量較小,沒有加密,字串長度被限制在 512bytes 內。(page 11-6)
- post:利用封包傳送模式,將資料打包成為封包狀態再傳送出去,除具有保密性之外,還可突破 512bytes 的限制。
- form 標籤所需要輸入的參數:
<form name="表單名(可忽略)" action="要將資料上傳到哪個檔名" method="get或post" >
....
</form>
- 小練習:製作兩個檔案:
- 檔名:ex13-11-1.php,內容顯示『這是第一個網頁,有 form 的標籤在』,並指向 GET 的方法到 ex13-11-2.php 去;
- 檔名:ex13-11-2.php,內容為『這是第二個網頁,主要在接收來自第一個網頁的資料』
並且在第一個網頁內,form 多一個 input 的標籤,內容如下:
<input type="submit" value="傳送到下個檔案" />
然後用瀏覽器打開第一個網頁,並按下按鈕,看看出現了什麼?
- 關於 input 的標籤之一:輸入的內容模式: type="text"
- ex13-11-1.php:新增如課本 11-9 的內容,並給予預設值!且每個 input 請給予適當的變數名稱(name="")
- ex13-11-2.php:透過 <?php echo $_GET['變數名稱'] ; ?> 的方法來顯示出使用者所輸入的字串!
- PHP的程式寫法,以 <?php 開頭,內部撰寫程式碼,然後以 ?> 作為結尾;
- PHP的程式可以在 HTML 內的任何一個地方插入,但瀏覽器並不能看到 PHP 的內容才對!
- 每一行指令都需要使用分號『 ; 』作為結尾;
- 可以利用 $_GET['變數名'] 來取得 get 上傳的資料;
- 可以利用 $_POST['變數名'] 來取得 post 上傳的資料;
- 可簡單的利用 echo 來進行變數的顯示,當有純文字資料時,建議透過雙引號,以及小數點『 . 』來連結字串;
- 關於 input 的標籤之二:輸入的內容為密碼: type="password"
- ex13-11-1.php:新增一個密碼欄位,並且告知應該要輸入密碼為 123456
- ex13-11-2.php:同樣利用 $_GET 來取得密碼,並且比較密碼是否為正確?透過條件判斷式如下:
if ( $mypassword == "123456" ) {
echo "輸入的密碼是正確的<br />";
echo "密碼應該為 123456 <br />";
} else {
echo "輸入錯誤的密碼了!<br />";
echo "你輸入的密碼是 $mypassword<br />";
} 請詳記這個條件判斷式的指令!
- 關於 input 的標籤之三:單選項目: type="radio"
這東西很有趣,你必須要指定多個項目,而且這些多個項目的 name 都必須要相同!請參考 page 11-13 的說明,
然後製作如下的內容:
- ex13-11-1.php:新增一項單選選項,裡面列出本學期的課程,並讓使用者填入他『最』喜歡的科目;
- ex13-11-2.php:將使用者的選擇列出來到螢幕上!
- 關於 input 的標籤之四:複選項目: type="checkbox"
這個玩意兒就是複選題囉!因為每個複選項目都是獨立存在的,因此你必須要設定『不同的變數名稱 name 』才行!
- ex13-11-1.php:同上一題,只是將最喜歡科目變成『複選』的功能!
- ex13-11-2.php:將使用者的選擇列出來到螢幕上!(必須要一個一個項目去捉!是很複雜的!)
- 關於 input 標籤之五:清除與傳送: type="reset" 及 type="submit"
這功能我就不講了!粉簡單!請加入到 ex13-11-1.php 的內容去!
- 關於 input 標籤之六:關於檔案的傳送: type="file"
可讓你的網頁選擇檔名後上傳到伺服器上面!不過還是很有問題∼因為牽涉到伺服器的相關權限問題。
這裡我們做個測試,不見得能成功!瞭解意思即可! (page 11-32)
- ex13-11-3.php:form 的內容較多,因為需要在 form 標籤處加入 enctype="multipart/form-data" 的定義,如下:
<form action="ex13-11-4.php" method="post" enctype="multipart/form-data" >
請選擇要上傳的檔案喔!
<input type="file" name="myfile" size="30" />
<input type="submit" value="按下上傳" />
</form>
- ex13-11-4.php:需要透過比較複雜的手續去取得這個檔案的相關功能!通常使用 $_FILES 功能去取得!如下:
<?php
echo "檔案名稱:" . $_FILES['myfile']['name']. "<br />";
echo "檔案大小:" . $_FILES['myfile']['size']. "<br />";
echo "檔案格式:" . $_FILES['myfile']['type']. "<br />";
echo "暫存檔名:" . $_FILES['myfile']['tmp_name']. "<br />";
echo "錯誤代碼:" . $_FILES['myfile']['error']. "<br />";
?>
更多與 PHP 上傳有關的討論可以參考 http://dob.tnc.edu.tw/themes/old/showPage.php?s=3737&t=84的介紹。
- 下拉式選單,請參考 select 與 option 功能,觀察 page 11-36 的介紹。
請依據課本的例題,建置 ex13-11-5.php 的內容,並以 ex13-11-6.php 來取得使用者的選擇內容!
- 大量留言內容:使用 textarea 的功能!請觀察 page 11-40 的說明!
實作題:請依照如下提示來製作本週習題:
- 修改您的 index.html ,讓本週的習題可以被瀏覽。
|