PHP基礎 PHP與Web頁面互動(表單處理)

2022-09-01 02:54:11 字數 3864 閱讀 1182

1、$_get 和 $_post 用於收集表單資料(form-data)

用http post

方法傳送提交資料。

當使用者填寫此表單並點選提交按鈕後,表單資料會傳送到名為 "welcome.php" 的 php 檔案供處理。

如需顯示出被提交的資料,您可以簡單地輸出(echo)所有變數。"welcome.php" 檔案是這樣的:

welcome 

<?php echo

$_post["name"]; ?>

your email address is: <?php echo

$_post["email"]; ?>

輸出:

welcome john

your email address is [email protected]

用http get

方法傳送提交資料(結果相同)。

"welcome_get.php" 是這樣的:

welcome 

<?php echo

$_get["name"]; ?>

your email address is: <?php echo

$_get["email"]; ?>

注意:為了保障指令碼安全,防止指令碼出現漏洞。您需要對表單提交的資料進行危險字元過濾轉換(驗證)處理。

1.get vs.post  提交資料原理

get 和 post 都建立陣列(例如,

array( key => value, key2 => value2, key3 => value3, ...))。此陣列包含鍵/值對,其中的鍵是表單控制項的名稱,而值是來自使用者的輸入資料。

get 和 post 被視作

$_get 和 $_post。它們是超全域性變數,這意味著對它們的訪問無需考慮作用域 -無需任何特殊**,您能夠從任何函式、類或檔案訪問它們。

$_get

是通過 url 引數傳遞到當前指令碼的變數陣列。

$_post

是通過 http post 傳遞到當前指令碼的變數陣列。

2.何時使用 get?

通過 get 方法從表單傳送的資訊對任何人都是可見的(所有變數名和值都顯示在 url 中)。get 對所傳送資訊的數量也有限制。限制在大於 2000個字元。不過,由於變數顯示在 url 中,把頁面新增到書籤中也更為方便。

get 可用於傳送非敏感的資料。

注釋:絕不能使用 get 來傳送密碼或其他敏感資訊!

3.何時使用 post?

通過 post 方法從表單傳送的資訊對其他人是不可見的(所有名稱/值會被嵌入 http 請求的主體中),並且對所傳送資訊的數量也無限制。

此外 post 支援高階功能,比如在向伺服器上傳檔案時進行 multi-part 二進位制輸入。

不過,由於變數未顯示在 url 中,也就無法將頁面新增到書籤。

2.表單危險字元過濾處理

上面的表單使用如下驗證規則:

字段驗證規則

name

必需。必須包含字母和空格。

e-mail

必需。必須包含有效的電子郵件位址(包含 @ 和 .)。

website

可選。如果選填,則必須包含有效的 url。

comment

可選。多行輸入字段(文字框)。

gender

必需。必須選擇一項。

表單的 html **是這樣的,當提交此表單時,通過 method="post" 傳送表單資料。

4.驗證 e-mail 和 url格式

使用正規表示式和preg_match() 函式檢索字串的模式,如果模式存在則返回 true,否則返回 false

<?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

}?>

5.使用者提交表單後保留輸入欄位中的值

如需在使用者點選提交按鈕後在輸入欄位中顯示值,我們在以下輸入欄位的 value 屬性中增加了一小段 php 指令碼:name、email 以及 website。在 comment 文字框欄位中,我們把指令碼放到了之間。這些指令碼輸出 $name、$email、$website 和 $comment 變數的值。

然後,我們還需要顯示選中了哪個單選按鈕。對此,我們必須操作 checked 屬性(而非單選按鈕的 value 屬性):

name: $name;?>">e-mail: $email;?>">website: $website;?>">comment:gender:

if (isset($gender) && $gender=="female") echo "checked";?>value="female">female

if (isset($gender) && $gender=="male") echo "checked";?>value="male">male

最後完整**

​<?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}​

function test_input($data

) ?>class="error">* 必需的字段

​<?php

echo "";

echo

$name

;echo "

";echo

$email

;echo "

";echo

$website

;echo "

";echo

$comment

;echo "

";echo

$gender

;?>​

PHP 與web頁面互動

php 與web頁面互動 一 http請求 get方法將表單內容附加在url後傳送,post將表單資訊作為乙個資料塊傳送。get是用來從服 務器上獲 得資料,而post 是用來向服務 器上 傳遞資料。get 是不安全的,因為在 傳輸過程,資料被放在 請求的url 中,而如今現 有的很多伺服器 服 務...

PHP學習筆記 PHP與Web頁面互動

一 表單 表單標記屬性如下表所示 二 在web頁面嵌入php指令碼 1 在html標記中嵌入php指令碼 通過在html標記中新增php指令碼標記 來嵌入php指令碼,兩個標記之間的所有文字都會被解釋為php語言,而標記之外的任何文字都會被認為是普通的html。2 對表單元素的value屬性進行賦值...

PHP與Web頁面互動操作例項分析

超全域性變數是php預定義好的變數,可以再php指令碼的任何位置使用 當表單以get方式提交時,會將使用者填寫的內容放在url引數中進行提交。表單的method屬性刪除 或將其值改為get 然後提交表單,會得到如下url。在將使用者輸入的內容輸出到html中顯示時,會遇到特殊字元問題。例如,使用者提...