麻辣家族討論版版's Archiver

小誌 發表於 2011-4-19 09:24

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

[color=DarkRed][size=4][b]5-2-3   表單與網址資訊[/b][/size][/color]
表單所傳送的資料可以透過「$_REQUEST[“參數名稱”」環境變數來讀取,至於資料的傳遞方式則可使用「$_SERVER["REQUEST_METHOD"]」環境變數來讀取:(範例go3.php配合message3.htm)
go3.php[code]<?
$name=$_REQUEST["name"];
$email=$_REQUEST["email"];
$memo=$_REQUEST["memo"];
if ($name=="" || $email=="" || $memo=="")
{
  echo "姓名或email或留言,任何一欄位不可為空白,請重新輸入";
}
else
{
  $memo=nl2br($memo);
?>
<html>
<body>
<table border=1>
<tr>
<td>留言者:<?echo $name?></td><td>Email:<?echo  $email?></td>
</tr>
<tr bgcolor=#ffffcc><td colspan=2><?echo $memo?></td>
</tr>
<tr>
<td colspan=2>傳送方式:<?echo $_SERVER["REQUEST_METHOD"]?></td>
</tr>
<tr>
<td colspan=2>傳送資料:<?echo $_SERVER["QUERY_STRING"]?></td>
</tr>
</table>
</body>
</html>
<?
}
?>[/code][color=Red]請注意:[/color]只有在表單傳送方式為「Get」時,「QUERY_STRING」環境變數才有資料值!
[attach]5516[/attach]
圖5-11  範例go3.php配合message3.htm。



[color=Red]提示!![/color]在圖5-11中您是否發現「QUERY_STRING」環境變數的資料值並非我們所輸入的文字?而是:
「name=%B7%A4p%BBx&email=Charles....」,參數名稱沒錯,但是參數值的部分只要是中文的內容卻都不一樣了,這是因為中文的部分在資料傳送過程中經過轉譯之故,不過這並不影響程式的正確性。

小誌 發表於 2011-4-19 09:25

而表單傳送的資料量大小則可以透過「CONTENT_LENGTH」環境變數來取得,「CONTENT_LENGTH」環境變數只有在表單資料傳送方式為「Post」時,「CONTENT_LENGTH」環境變數才能顯示正確的傳送資料量大小:(範例go4.php配合message4.htm)
[attach]5517[/attach]
圖5-12  範例go4.php配合message4.htm。
go4.php[code]<?
$name=$_REQUEST["name"];
$email=$_REQUEST["email"];
$memo=$_REQUEST["memo"];
if ($name=="" || $email=="" || $memo=="")
{
  echo "姓名或email或留言,任何一欄位不可為空白,請重新輸入";
}
else
{
  $memo=nl2br($memo);
?>
<html>
<body>
<table border=1>
<tr>
<td>留言者:<?echo $name?></td><td>Email:<?echo  $email?></td>
</tr>
<tr bgcolor=#ffffcc><td colspan=2><?echo $memo?></td>
</tr>
<tr>
<td colspan=2>傳送方式:<?echo $_SERVER["REQUEST_METHOD"]?></td>
</tr>
<tr>
<td colspan=2>傳送資料量:
<?echo $_SERVER["CONTENT_LENGTH"]?></td>
</tr>
</table>
</body>
</html>
<?
}
?>[/code]

小誌 發表於 2011-4-19 09:27

若表單資料傳送方式為「Get」則「CONTENT_LENGTH」環境變數值為0:
[attach]5518[/attach]
圖5-13  表單資料傳送方式為「Get」。


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

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供