首先我們對使用者所有提交的資料都通過 php 的 htmlspecialchars() 函式處理。
當我們使用 htmlspecialchars() 函式時,在使用者嘗試提交以下文字域:
<script
>
location.href(
'')script
>
該**將不會被執行,因為它會被儲存為html轉義**,如下所示:
以上**是安全的,可以正常在頁面顯示或者插入郵件中。
當使用者提交表單時,我們將做以下兩件事情,:
使用 php trim() 函式去除使用者輸入資料中不必要的字元 (如:空格,tab,換行)。
使用php stripslashes()函式去除使用者輸入資料中的反斜槓 (\)
接下來讓我們將這些過濾的函式寫在乙個我們自己定義的函式中,這樣可以大大提高**的復用性。
將函式命名為 test_input()。
現在,我們可以通過test_input()函式來檢測 $_post 中的所有變數, 指令碼**如下所示:
<?php//定義變數並預設設定為空值
$name = $email = $gender = $comment = $website = "";
if ($_server["request_method"] == "post")
function test_input($data
)?>
在以下**中我們加入了一些新的變數: $nameerr, $emailerr, $gendererr, 和 $websiteerr.。這些錯誤變數將顯示在必需欄位上。 我們還為每個$_post變數增加了乙個if else語句。 這些語句將檢查 $_post 變數是 否為空(使用php的 empty() 函式)。如果為空,將顯示對應的錯誤資訊。 如果不為空,資料將傳遞給test_input() 函式:
<?php//定義變數並預設設為空值
$nameerr = $emailerr = $gendererr = $websiteerr = "";
$name = $email = $gender = $comment = $website = "";
if ($_server["request_method"] == "post")
else
if (empty($_post["email"]))
else
if (empty($_post["website"]))
else
if (empty($_post["comment"]))
else
if (empty($_post["gender"]))
else
}?>
在以下的html例項表單中,我們為每個欄位中新增了一些指令碼, 各個指令碼會在資訊輸入錯誤時顯示錯誤資訊。(如果使用者未填寫資訊就提交表單則會輸出錯誤資訊):
<form
method
="post"
action
="<?php echo htmlspecialchars($_server["
php_self"]);?
>
">
名字:
<
input
type
="text"
name
="name"
>
<
span
class
="error"
>* <?
php echo $nameerr;
?>
span
>
<
br><
br>
e-mail:
<
input
type
="text"
name
="email"
>
<
span
class
="error"
>* <?
php echo $emailerr;
?>
span
>
<
br><
br>
**:
<
input
type
="text"
name
="website"
>
<
span
class
="error"
>
<?
php echo $websiteerr;
?>
span
>
<
br><
br>
備註:
<
textarea
name
="comment"
rows
="5"
cols
="40"
>
textarea
>
<
br><
br>
性別:
<
input
type
="radio"
name
="gender"
value
="female"
>
女
<
input
type
="radio"
name
="gender"
value
="male"
>
男
<
span
class
="error"
>* <?
php echo $gendererr;
?>
span
>
<
br><
br>
<
input
type
="submit"
name
="submit"
value
="submit"
>
form
>
使用 POST 獲取表單資料(PHP)
在php中,post陣列獲取使用post方式提交的表單資料 語法 變數名 post name name指表單元素name屬性值 注意 1 單選框的name屬性值一樣表示一組,只能選其中乙個。2 核取方塊的name屬性值一樣表示一組,但核取方塊可以多選。當多個核取方塊屬於同一組時,name屬性命名必須...
使用 GET 獲取表單資料(PHP)
在php中,get陣列獲取使用get方式提交的表單資料 語法 變數名 get name name指表單元素name屬性值 get與 post的區別 get方式會將表單中的資料以url字串的形式傳送給伺服器 將test.php以get方式提交,瀏覽器位址列會顯示 以 開頭的字串稱為url字串,則 ge...
php獲取表單資料
1.html 2.php test.php username post username password post password if username wang password 123456 else 3.php 第二種寫法 test.php require once dbtest.php...