返回列表 上一主題 發帖

5-2-3 表單與網址資訊

5-2-3 表單與網址資訊

5-2-3   表單與網址資訊
表單所傳送的資料可以透過「$_REQUEST[“參數名稱”」環境變數來讀取,至於資料的傳遞方式則可使用「$_SERVER["REQUEST_METHOD"]」環境變數來讀取:(範例go3.php配合message3.htm)
go3.php
  1. <?
  2. $name=$_REQUEST["name"];
  3. $email=$_REQUEST["email"];
  4. $memo=$_REQUEST["memo"];
  5. if ($name=="" || $email=="" || $memo=="")
  6. {
  7.   echo "姓名或email或留言,任何一欄位不可為空白,請重新輸入";
  8. }
  9. else
  10. {
  11.   $memo=nl2br($memo);
  12. ?>
  13. <html>
  14. <body>
  15. <table border=1>
  16. <tr>
  17. <td>留言者:<?echo $name?></td><td>Email:<?echo  $email?></td>
  18. </tr>
  19. <tr bgcolor=#ffffcc><td colspan=2><?echo $memo?></td>
  20. </tr>
  21. <tr>
  22. <td colspan=2>傳送方式:<?echo $_SERVER["REQUEST_METHOD"]?></td>
  23. </tr>
  24. <tr>
  25. <td colspan=2>傳送資料:<?echo $_SERVER["QUERY_STRING"]?></td>
  26. </tr>
  27. </table>
  28. </body>
  29. </html>
  30. <?
  31. }
  32. ?>
複製代碼
請注意:只有在表單傳送方式為「Get」時,「QUERY_STRING」環境變數才有資料值!

圖5-11  範例go3.php配合message3.htm。



提示!!在圖5-11中您是否發現「QUERY_STRING」環境變數的資料值並非我們所輸入的文字?而是:
「name=%B7%A4p%BBx&email=Charles....」,參數名稱沒錯,但是參數值的部分只要是中文的內容卻都不一樣了,這是因為中文的部分在資料傳送過程中經過轉譯之故,不過這並不影響程式的正確性。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

而表單傳送的資料量大小則可以透過「CONTENT_LENGTH」環境變數來取得,「CONTENT_LENGTH」環境變數只有在表單資料傳送方式為「Post」時,「CONTENT_LENGTH」環境變數才能顯示正確的傳送資料量大小:(範例go4.php配合message4.htm)

圖5-12  範例go4.php配合message4.htm。
go4.php
  1. <?
  2. $name=$_REQUEST["name"];
  3. $email=$_REQUEST["email"];
  4. $memo=$_REQUEST["memo"];
  5. if ($name=="" || $email=="" || $memo=="")
  6. {
  7.   echo "姓名或email或留言,任何一欄位不可為空白,請重新輸入";
  8. }
  9. else
  10. {
  11.   $memo=nl2br($memo);
  12. ?>
  13. <html>
  14. <body>
  15. <table border=1>
  16. <tr>
  17. <td>留言者:<?echo $name?></td><td>Email:<?echo  $email?></td>
  18. </tr>
  19. <tr bgcolor=#ffffcc><td colspan=2><?echo $memo?></td>
  20. </tr>
  21. <tr>
  22. <td colspan=2>傳送方式:<?echo $_SERVER["REQUEST_METHOD"]?></td>
  23. </tr>
  24. <tr>
  25. <td colspan=2>傳送資料量:
  26. <?echo $_SERVER["CONTENT_LENGTH"]?></td>
  27. </tr>
  28. </table>
  29. </body>
  30. </html>
  31. <?
  32. }
  33. ?>
複製代碼
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

若表單資料傳送方式為「Get」則「CONTENT_LENGTH」環境變數值為0:

圖5-13  表單資料傳送方式為「Get」。


表單資料傳送方式為「Get」時,「QUERY_STRING」環境變數可以讀取網址後方的參數資料(「?」問號之後的傳遞參數),若我要的是「?」問號之前的網頁基底呢?這個時候就可以使用「SERVER_NAME」與「PHP_SELF」環境變數。
要得知被啟動的PHP程式網頁的實際檔案路徑則可使用「PATH_TRANSLATED」環境變數;要得知PHP程式網頁是由哪一個網頁所鏈結啟動的,則可使用「HTTP_REFERER」環境變數:(範例go5.php配合message5.htm)
go5.php
  1. 「SERVER_NAME」環境變數:
  2. <?echo $_SERVER["SERVER_NAME"];?><BR>
  3. 「PHP_SELF」環境變數:
  4. <?echo $_SERVER["PHP_SELF"];?><BR>
  5. 「PATH_TRANSLATED」環境變數:
  6. <?echo $_SERVER["PATH_TRANSLATED"];?><BR>
  7. 「HTTP_REFERER」環境變數:
  8. <?echo $_SERVER["HTTP_REFERER"];?><BR>
複製代碼

圖5-14  範例go5.php配合message5.htm。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題