使用 PHP 驗證表單資料

2022-07-17 09:21:11 字數 3180 閱讀 6374

首先我們對使用者所有提交的資料都通過 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...