成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PHP表單輸入與驗(yàn)證的方法是什么

這篇文章主要介紹“PHP表單輸入與驗(yàn)證的方法是什么”,在日常操作中,相信很多人在PHP表單輸入與驗(yàn)證的方法是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)HP表單輸入與驗(yàn)證的方法是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)專注于工布江達(dá)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供工布江達(dá)營(yíng)銷(xiāo)型網(wǎng)站建設(shè),工布江達(dá)網(wǎng)站制作、工布江達(dá)網(wǎng)頁(yè)設(shè)計(jì)、工布江達(dá)網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造工布江達(dá)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供工布江達(dá)網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

PHP表單輸入與驗(yàn)證的方法是什么

在之前的文章中我們已經(jīng)了解了PHP的基礎(chǔ),其中就有$_GET $_POST 變量,它們用來(lái)檢索表單中的信息,其中需要我們注意的知識(shí)點(diǎn)就是PHP表單用戶輸入和表單驗(yàn)證。那接下來(lái)我們就來(lái)看一下PHP中表單輸入與表單驗(yàn)證的相關(guān)知識(shí)吧。

PHP表單和用戶輸入

想要去了解PHP表單和用戶輸入,首先我們要明白什么是表單。Web表單準(zhǔn)確來(lái)說(shuō)算是一個(gè)互動(dòng)平臺(tái),主要的功能就是讓瀏覽者和網(wǎng)站有一個(gè)互動(dòng)的平臺(tái)。表單主要就是在網(wǎng)頁(yè)中用來(lái)發(fā)送數(shù)據(jù)到服務(wù)器。

例如,注冊(cè)信息時(shí)使用到的表單,當(dāng)你填寫(xiě)完信息時(shí)需要提交,這時(shí)候提交就是將你注冊(cè)時(shí)表單上的內(nèi)容從客戶端瀏覽器傳送到服務(wù)器端,再經(jīng)過(guò)PHP程序進(jìn)行處理后,再將用戶所需要的信息傳遞回到客戶端瀏覽器上,通過(guò)獲取用戶的信息,使得PHP與Web表單實(shí)現(xiàn)交互。就是提供了這么一個(gè)互動(dòng)的平臺(tái)。

接下來(lái)我們通過(guò)示例來(lái)看一下表單,示例如下:

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>創(chuàng)新互聯(lián)</title>
 </head>
 <body>
 
 <form action="form.php" method="post">
     名字: <input type="text" name="fname"><br>
     年齡: <input type="text" name="age"><br>
     <input type="submit" value="提交">
 </form>
 
 </body>
 </html>

其中需要我們注意的是表單屬于HTML的知識(shí),更多的相關(guān)知識(shí),大家可以點(diǎn)擊《HTML教程》進(jìn)行學(xué)習(xí),上述示例的運(yùn)行結(jié)果:

PHP表單輸入與驗(yàn)證的方法是什么

這便是我們所說(shuō)的表單,那么我們?cè)谄渲刑顚?xiě)的信息也就是表單信息會(huì)發(fā)送到哪里呢?當(dāng)我們點(diǎn)擊提交的時(shí)候,表單中的數(shù)據(jù)就會(huì)以POST的形式,發(fā)送到form.php這個(gè)頁(yè)面。

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 echo "歡迎你:".$_POST["fname"] ."<br/>";
 echo "你的年齡是:".$_POST['age'];
 ?>

我們發(fā)送到from.php的運(yùn)行結(jié)果如下:

PHP表單輸入與驗(yàn)證的方法是什么

當(dāng)用戶輸入完成后,這時(shí)候就需要對(duì)表單進(jìn)行驗(yàn)證了,應(yīng)該在任何可能的時(shí)候通過(guò)客戶端腳本對(duì)用戶輸入進(jìn)行驗(yàn)證。瀏覽器驗(yàn)證速度更快,并且可以減輕服務(wù)器的負(fù)載。

如果用戶輸入需要插入數(shù)據(jù)庫(kù),您應(yīng)該考慮使用服務(wù)器驗(yàn)證。在服務(wù)器驗(yàn)證表單的一種好的方式是,把表單傳給它自己,而不是跳轉(zhuǎn)到不同的頁(yè)面。這樣用戶就可以在同一張表單頁(yè)面得到錯(cuò)誤信息。用戶也就更容易發(fā)現(xiàn)錯(cuò)誤了。那么接下來(lái)我們一起來(lái)看一下表單驗(yàn)證的相關(guān)知識(shí)吧。

PHP表單驗(yàn)證

在處理PHP表單時(shí)我們需要考慮安全性。我們將展示PHP表單數(shù)據(jù)安全處理,為了防止黑客及垃圾信息我們需要對(duì)表單進(jìn)行數(shù)據(jù)安全驗(yàn)證。接下來(lái)我們通過(guò)實(shí)例來(lái)看一下表單中的必須與可選文本字段,單選按鈕,及提交按鈕。

示例如下:

<!DOCTYPE HTML>
 <html>
 <head>
     <meta charset="utf-8">
     <title>PHP.cn</title>
 </head>
 <body>
 <h3>PHP 表單驗(yàn)證實(shí)例</h3>
 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    名字: <input type="text" name="name" value="">
     <br>
     E-mail: <input type="text" name="email" value="">
     <br>
     網(wǎng)址: <input type="text" name="website" value="">
     <br>
     備注: <textarea name="comment" rows="5" cols="40"></textarea>
     <br>
     性別:
     <input type="radio" name="gender"  value="female">女
     <input type="radio" name="gender"  value="male">男
     <br>
     <input type="submit" name="submit" value="提交">
 </form>
 </body>
 </html>

輸出結(jié)果:

PHP表單輸入與驗(yàn)證的方法是什么

其中我們需要注意的是不同的字段有不同的驗(yàn)證規(guī)則,上述示例中不同字段的驗(yàn)證規(guī)則如下:

名字的驗(yàn)證規(guī)則是必須的,并且只能包含字母和空格。E-mail的驗(yàn)證規(guī)則是必須的,其中必須是一個(gè)有效的電子郵件地址(包含'@'和'.')。網(wǎng)址的驗(yàn)證規(guī)則的是可選的,并且如果存在,它必須包含一個(gè)有效的URL。備注的驗(yàn)證規(guī)則是可選的,多行輸入字段。性別的驗(yàn)證規(guī)則是必須的,必須選擇一個(gè)。

通過(guò)上述示例我們?cè)賮?lái)看一下其中用到的知識(shí):

$_SERVER["PHP_SELF"]變量

$_SERVER["PHP_SELF"]是一種超全局變量,它返回當(dāng)前執(zhí)行腳本的文件名。因此,$_SERVER["PHP_SELF"] 將表單數(shù)據(jù)發(fā)送到頁(yè)面本身,而不是跳轉(zhuǎn)到另一張頁(yè)面。這樣,用戶就能夠在表單頁(yè)面獲得錯(cuò)誤提示信息。

htmlspecialchars() 函數(shù)

htmlspecialchars() 函數(shù)把特殊字符轉(zhuǎn)換為 HTML 實(shí)體。這意味著 < 和 > 之類的 HTML 字符會(huì)被替換為 &lt; 和 &gt; 。這樣可防止攻擊者通過(guò)在表單中注入 HTML 或 JavaScript 代碼(跨站點(diǎn)腳本攻擊)對(duì)代碼進(jìn)行利用。

其中我們需要注意的是:

$_SERVER["PHP_SELF"] 變量能夠被黑客利用,如何避免 $_SERVER["PHP_SELF"] 被利用?

$_SERVER["PHP_SELF"] 可以通過(guò) htmlspecialchars() 函數(shù)來(lái)避免被利用。

form 代碼如下所示:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

htmlspecialchars() 把一些預(yù)定義的字符轉(zhuǎn)換為 HTML 實(shí)體?,F(xiàn)在如果用戶想利用 PHP_SELF 變量, 結(jié)果將輸出如下所示:

<form method="post" action="test_form.php/&quot;&gt;&lt;script&gt;alert('hacked')&lt;/script&gt;">

嘗試該漏洞失?。?/p>

通過(guò)PHP驗(yàn)證表單數(shù)據(jù)

我們要做的第一件事是通過(guò) PHP 的 htmlspecialchars() 函數(shù)傳遞所有變量。在用戶提交該表單時(shí),我們還要做兩件事:

首先通過(guò) PHP trim() 函數(shù)去除用戶輸入數(shù)據(jù)中不必要的字符,比如多余的空格、制表符、換行等,然后通過(guò) PHP stripslashes() 函數(shù)刪除用戶輸入數(shù)據(jù)中的反斜杠(\)。接下來(lái)我們創(chuàng)建一個(gè)檢查函數(shù),我們把函數(shù)命名為 test_input()。最后我們能夠通過(guò) test_input() 函數(shù)檢查每個(gè) $_POST 變量。

我們將驗(yàn)證程序可以放到上述示例中去,示例如下:

<!DOCTYPE HTML>
 <html>
 <head>
     <meta charset="utf-8">
     <title>創(chuàng)新互聯(lián)(php.cn)</title>
 </head>
 <body>
 
 <?php
 // 定義變量并默認(rèn)設(shè)置為空值
 $name = $email = $gender = $comment = $website = "";
 
 if ($_SERVER["REQUEST_METHOD"] == "POST")
 {
     $name = test_input($_POST["name"]);
     $email = test_input($_POST["email"]);
     $website = test_input($_POST["website"]);
     $comment = test_input($_POST["comment"]);
     $gender = test_input($_POST["gender"]);
 }
 
 function test_input($data)
 {
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
 }
 ?>
 
 <h3>PHP 表單驗(yàn)證實(shí)例</h3>
 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
     名字: <input type="text" name="name">
     <br><br>
     E-mail: <input type="text" name="email">
     <br><br>
     網(wǎng)址: <input type="text" name="website">
     <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">男
     <br><br>
     <input type="submit" name="submit" value="提交">
 </form>
 
 <?php
 echo "<h3>您輸入的內(nèi)容是:</h3>";
 echo $name;
 echo "<br>";
 echo $email;
 echo "<br>";
 echo $website;
 echo "<br>";
 echo $comment;
 echo "<br>";
 echo $gender;
 ?>
 
 </body>

輸出結(jié)果:

PHP表單輸入與驗(yàn)證的方法是什么

其中我們需要注意的是:

我們?cè)趫?zhí)行以上腳本時(shí),會(huì)通過(guò)$_SERVER["REQUEST_METHOD"]來(lái)檢測(cè)表單是否被提交 。如果 REQUEST_METHOD 是 POST, 表單將被提交 - 數(shù)據(jù)將被驗(yàn)證。如果表單未提交將跳過(guò)驗(yàn)證并顯示空白。在以上實(shí)例中使用輸入項(xiàng)都是可選的,即使用戶不輸入任何數(shù)據(jù)也可以正常顯示。

到此,關(guān)于“PHP表單輸入與驗(yàn)證的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

網(wǎng)頁(yè)題目:PHP表單輸入與驗(yàn)證的方法是什么
鏈接地址:http://jinyejixie.com/article2/pggdoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化商城網(wǎng)站、網(wǎng)站制作Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
丰都县| 荔波县| 龙游县| 九寨沟县| 阳高县| 延长县| 五指山市| 潍坊市| 东辽县| 云龙县| 洛宁县| 呼图壁县| 莱西市| 额尔古纳市| 三都| 翁牛特旗| 盐津县| 安乡县| 谢通门县| 达州市| 平阳县| 长沙市| 麦盖提县| 大田县| 五指山市| 潼关县| 绥德县| 务川| 东乡| 长治市| 行唐县| 山阴县| 沁源县| 离岛区| 体育| 称多县| 大新县| 广东省| 治县。| 巨野县| 延边|