| 回教學網站 | 回網站規劃與設計首頁 | 作業繳交區 |
課程重點:表單的建置與 PHP 變數的取得

透過 vim 進行 PHP 網頁的編輯

  1. 請使用 http://203.71.39.250/intoserver/ 的說明來登入鳥哥的伺服器,並進入你的 www 目錄,以建立我們上課所需要的 .php 網頁。 常用的 Linux 指令如下:
    指令名稱說明
    ll顯示該目錄下的檔名,可以查閱你所需要的檔案名稱;
    cd 目錄名稱可以變換目錄,其中必須要注意,『 .. 』代表上層目錄,『 ~ 』代表家目錄;
    mkdir 新目錄建立新的目錄;
    rm 檔名刪除某個檔案,但不能夠是目錄
    rm -r 目錄用在刪除目錄
    vim 檔名用 vim 去編輯某個檔案,該檔名若不存在,代表編輯新檔!

  2. 使用 vim 時,需要知道,vim 共有三種模式,分別是:
    • 一般模式:可進行移動、複製、整行刪除等動作;
    • 編輯模式:可以有插入以及取代兩種基本模式
    • 指令列模式:可用來儲存檔案或離開檔案等
    常用的指令包括有(請注意大小寫並不相同!)
    指令名稱說明
    G (100G)用來跳到某一行,例如左邊括號內,就是跳到第 100 行的意思
    dd (10dd)刪除游標所在的那一行,或者是底下的 10 行
    i, Ri是插入模式, R 是取代模式!注意大小寫並不相同!
    [Esc]這個按鍵是回復到一般模式的按鈕!很重要∼搭配 i 或 R 可以進行編輯!
    :w這個是寫入的意思!
    :q!不儲存離開
    :wq儲存後離開

  3. 請用 vim 去查閱一下你的選單檔名,然後再利用 vim 去建立一個 .html 的檔案,內容隨意建置,作為一個簡單的練習。


處理表單之一:透過 form 與 input 標籤

  1. form 的標籤非常重要!他可以讓你在網頁所輸入的資料『上傳』到伺服器上!上傳的方法有兩種:
    • get:利用字串方式傳送,資料量較小,沒有加密,字串長度被限制在 512bytes 內。(page 11-6)
    • post:利用封包傳送模式,將資料打包成為封包狀態再傳送出去,除具有保密性之外,還可突破 512bytes 的限制。

  2. form 標籤所需要輸入的參數:
    <form name="表單名(可忽略)" action="要將資料上傳到哪個檔名" method="get或post" >
    ....
    </form>

  3. 小練習:製作兩個檔案:
    1. 檔名:ex13-11-1.php,內容顯示『這是第一個網頁,有 form 的標籤在』,並指向 GET 的方法到 ex13-11-2.php 去;
    2. 檔名:ex13-11-2.php,內容為『這是第二個網頁,主要在接收來自第一個網頁的資料』
    並且在第一個網頁內,form 多一個 input 的標籤,內容如下:
    <input type="submit" value="傳送到下個檔案" />
    然後用瀏覽器打開第一個網頁,並按下按鈕,看看出現了什麼?

  4. 關於 input 的標籤之一:輸入的內容模式: type="text"
    1. ex13-11-1.php:新增如課本 11-9 的內容,並給予預設值!且每個 input 請給予適當的變數名稱(name="")
    2. ex13-11-2.php:透過 <?php echo $_GET['變數名稱'] ; ?> 的方法來顯示出使用者所輸入的字串!
      • PHP的程式寫法,以 <?php 開頭,內部撰寫程式碼,然後以 ?> 作為結尾;
      • PHP的程式可以在 HTML 內的任何一個地方插入,但瀏覽器並不能看到 PHP 的內容才對!
      • 每一行指令都需要使用分號『 ; 』作為結尾;
      • 可以利用 $_GET['變數名'] 來取得 get 上傳的資料;
      • 可以利用 $_POST['變數名'] 來取得 post 上傳的資料;
      • 可簡單的利用 echo 來進行變數的顯示,當有純文字資料時,建議透過雙引號,以及小數點『 . 』來連結字串;

  5. 關於 input 的標籤之二:輸入的內容為密碼: type="password"
    1. ex13-11-1.php:新增一個密碼欄位,並且告知應該要輸入密碼為 123456
    2. ex13-11-2.php:同樣利用 $_GET 來取得密碼,並且比較密碼是否為正確?透過條件判斷式如下:
      if ( $mypassword == "123456" ) {
      	echo "輸入的密碼是正確的<br />";
      	echo "密碼應該為 123456 <br />";
      } else {
      	echo "輸入錯誤的密碼了!<br />";
      	echo "你輸入的密碼是 $mypassword<br />";
      }
      請詳記這個條件判斷式的指令!

  6. 關於 input 的標籤之三:單選項目: type="radio"
    這東西很有趣,你必須要指定多個項目,而且這些多個項目的 name 都必須要相同!請參考 page 11-13 的說明, 然後製作如下的內容:
    1. ex13-11-1.php:新增一項單選選項,裡面列出本學期的課程,並讓使用者填入他『最』喜歡的科目;
    2. ex13-11-2.php:將使用者的選擇列出來到螢幕上!

  7. 關於 input 的標籤之四:複選項目: type="checkbox"
    這個玩意兒就是複選題囉!因為每個複選項目都是獨立存在的,因此你必須要設定『不同的變數名稱 name 』才行!
    1. ex13-11-1.php:同上一題,只是將最喜歡科目變成『複選』的功能!
    2. ex13-11-2.php:將使用者的選擇列出來到螢幕上!(必須要一個一個項目去捉!是很複雜的!)

  8. 關於 input 標籤之五:清除與傳送: type="reset" 及 type="submit"
    這功能我就不講了!粉簡單!請加入到 ex13-11-1.php 的內容去!

  9. 關於 input 標籤之六:關於檔案的傳送: type="file"
    可讓你的網頁選擇檔名後上傳到伺服器上面!不過還是很有問題∼因為牽涉到伺服器的相關權限問題。 這裡我們做個測試,不見得能成功!瞭解意思即可! (page 11-32)
    1. 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>
    2. 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的介紹。

  10. 下拉式選單,請參考 select 與 option 功能,觀察 page 11-36 的介紹。
    請依據課本的例題,建置 ex13-11-5.php 的內容,並以 ex13-11-6.php 來取得使用者的選擇內容!

  11. 大量留言內容:使用 textarea 的功能!請觀察 page 11-40 的說明!

實作題:請依照如下提示來製作本週習題:
  1. 修改您的 index.html ,讓本週的習題可以被瀏覽。
回到最上方 (top)