標題:
5-6 表單欄位資料的使用(5-6-1 單行文字輸入元件(Text))
[打印本頁]
作者:
小誌
時間:
2011-4-19 09:46
標題:
5-6 表單欄位資料的使用(5-6-1 單行文字輸入元件(Text))
5-6 表單欄位資料的使用
在第一節中,我們僅就表單的資料傳遞方式加以說明,範例中的表單元件「單行文字輸入元件(Text)」與「多行文字輸入元件(Textarea)」並沒有加以說明,事實上,表單的元件相當的多,而表單與表單元件在我們PHP中利用到的機會非常的多,所以有必要下點功夫對表單元件多熟悉一點,在說明這些元件的同時,筆者將會就這些元件欄位相關的PHP函數與物件方法加以介紹。
5-6-1 單行文字輸入元件(Text)
單行文字輸入元件是表單中的基礎元件,出現機率百分之九十以上,例如姓名、住址、電話..等等資料的輸入都會用到它:
欄位說明文字:<Input Type=”Text” Name=”識別名”>
複製代碼
例如:
地址:<Input Type=”Text” Name=”Address”>
複製代碼
若您要限制可輸入的字數可加上「Maxlength」屬性,若資料是要寫入資料庫,這個字數限制是有必要限定的,避免使用者故意輸入大量的文字,造成資料庫欄位長度不足,例如限制最大輸入字數為50個字:
地址:<Input Type=”Text” Name=”Address” Maxlength=”50”>
複製代碼
另外,「Size」屬性可設定單行文字輸入元件的顯示寬度;「Value」屬性可設定出現在單行文字輸入元件中的預設值,例如:
地址:<Input Type=”Text” Name=”Address” Value=“請輸入戶籍地址”>
複製代碼
作者:
小誌
時間:
2011-4-19 09:48
在PHP中有些函數是與文字輸入的資料處理有密切的關係,例如使用者故意加入HTML標籤,造成資料在顯示時出現不正常排列,造成頁面排版格式亂掉,此種狀況最常出現的就是在「留言版」或「討論區」,此時就可使用「htmlspecialchars()」函數來處理:
htmlspecialchars ()函數格式
string htmlspecialchars ( string string [, int quote_style [, string charset]])
複製代碼
text.php
<html><head>
<title>單行文字輸入元件使用</title>
</head><body>
<form action="text_ans.php" method="Post">
地址:
<input type="Text" name="Address">
<input type="Submit">
</form>
</body></html>
複製代碼
[attach]5524[/attach]
圖5-19於欄位中故意輸入HTML標籤。
text_ans.php
<html><head>
<title>單行文字輸入元件使用</title>
</head><body>
<%
myaddress=Request.Form("Address")
%>
關閉HTML標籤使用:<%= Server.HTMLEncode(myaddress) %>
<P>
開放HTML標籤使用:<%=myaddress %>
</body></html>
複製代碼
利用Server物件的「HTMLEncode」方法可將欄位內的資料加以編碼,結果就成為「<B>台北縣</B>」,瀏覽器遇到這種特殊字元就會加以解碼成文字顯示出來,而不會將其當成HTML標籤來解讀。
[attach]5525[/attach]
圖5-20 使用「HTMLEncode」方法編碼。
作者:
小誌
時間:
2011-4-19 09:53
要計算使用者所輸入的資料長度(字元數),可使用「strlen函數,如果是空字串則長度為0,特別要注意:空白字元也佔用一個字元長度。
為了確保資料的輸入正確性,避免空白字元的誤輸入與計算資料長度的正確性,我們可以利用「trim()」函數移除資料字串左右兩邊的空白字元,但是夾雜於字元與字元間的空白字元並不會被消除。
text_2.php(節錄)
<form action="text_ans_2.php" method="Post">
地址:
<input type="Text" name="Address">
<input type="Submit">
</form>
複製代碼
例如:故意於資料前方加入三個空白字元,資料中間與後方各加入一個空白字元:
[attach]5526[/attach]
圖5-22 刻意輸入空白字元。
text_ans_2.php
<html><head>
<title>單行文字輸入元件使用</title>
</head><body>
<?
$myaddress=$_REQUEST["Address"];
?>
原始資料:<?=$myaddress?><Br>
長度:<?=strlen($myaddress)?><Br>
<P>
去兩邊空白資料:<?=trim($myaddress)?><Br>
長度:<?=strlen(trim($myaddress))?><Br>
<P>
</body></html>
複製代碼
在下圖中,利用「trim()」等函數移除資料字串左右兩邊的空白字元,再利用「strlen()」函數計算資料長度,您可以發現夾雜於字元與字元間的空白字元並不會被消除,而且一個空白字元就佔用一個空間長度,注意:一個中文字算兩個字元長度。
[attach]5527[/attach]
圖5-22 去除空白字元與計算資料長度。
作者:
tokko4286
時間:
2012-7-15 18:22
不好意思 想請問
<%
myaddress=Request.Form("Address")
%>
我使用DW 顯示這段語法錯誤 但我不知道如何修正
還請大大指點
感謝
作者:
小誌
時間:
2012-7-15 20:24
不好意思 想請問
我使用DW 顯示這段語法錯誤 但我不知道如何修正
還請大大指點
感謝
tokko4286 發表於 2012-7-15 18:22
<?
$myaddress=$_REQUEST["Address"];
?>
複製代碼
作者:
bubaby0608
時間:
2013-3-26 03:15
另外,「Size」屬性可設定單行文字輸入元件的顯示寬度;「Value」屬性可設定出現在單行文字輸入元件中的預設值,例如:
地址:<Input Type="Text" Name="Address" Value="地址" size="5">
複製代碼
作者:
bubaby0608
時間:
2013-3-26 03:22
使用「htmlspecialchars()」函數來處理:
<?php
$yaddress = "123</br>123";
$kk = htmlspecialchars($yaddress);
echo $kk;
?>
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)