PHP入門(mén)教程之表單與驗(yàn)證實(shí)例詳解
本文實(shí)例講述了PHP表單與驗(yàn)證。分享給大家供大家參考,具體如下:
Demo1.php
<?php
ob_start();
//重新導(dǎo)向一個(gè) URL
//header()
//header('Location:Demo2.php');
//上面這句話可以自動(dòng)跳轉(zhuǎn)到你所想要的頁(yè)面。
//header('Location:http://www.baidu.com');
//上面這句話自動(dòng)跳轉(zhuǎn)到百度上面去。
echo 'baidu.com';
header('Location:http://www.baidu.com');
//在執(zhí)行 header() 函數(shù),必須注意,之前不能有任何瀏覽器輸出
?>
Demo2.php
<?php
ob_start();
echo '1232';
//字符編碼
header('Content-Type:text/html;charset=GBK'); //設(shè)置頁(yè)面編碼
echo '我是中文';
?>
Demo3.php
<form method="post" action="Demo4.php"> 姓名:<input type="text" name="username" /><br /> <input type="submit" value="提交" /> </form>
Demo4.php
<?php
//第一步,接收前面表單中的值。
//一個(gè),username
//接收 $_POST['username']
//echo $_POST['username'];
//你需要明白一個(gè)道理,空字符串也是數(shù)據(jù),也可以賦值給 $_POST['username'];
//使用 isset() 驗(yàn)證是否正常提交是很準(zhǔn)確的
//目前所說(shuō)的非法提交,是你沒(méi)有經(jīng)過(guò)表單提交,沒(méi)有生成全局變量,而不是 username
//這個(gè)字段為空
// if(isset($_POST['username'])){
// echo '正常提交';
// }else{
// echo '非法提交';
// }
//!empty($_POST['username']) 和 == ''基本一樣,但是,并不能說(shuō),人家是非法的
//只能說(shuō)人家沒(méi)有填而已。
// if(!empty($_POST['username'])){
// echo '正常提交';
// }else{
// echo '非法提交';
// }
//建議使用
if(isset($_POST['username'])){
echo '正常提交';
//在輸出之前,為了頁(yè)面安全性
//echo $_POST['username'];
$username = $_POST['username'];
$username = trim($username);
$username = htmlspecialchars($username);
if(strlen($username) < 2) {
echo '用戶(hù)名不能小于兩位';
exit();
}
if(!is_numeric($username)) {
echo '用戶(hù)名必須是純數(shù)字';
exit();
}
echo $username; //<strong>閱誰(shuí)問(wèn)君誦</strong>
}else{
echo '非法提交';
}
?>
Demo5.php
<form method="post" action="Demo6.php"> 用戶(hù)名:<input type="text" name="username" /><br /> 密 碼:<input type="text" name="password" /><br /> 驗(yàn)證碼:<input type="text" name="code" size="5" />1234<br /> 郵 箱:<input type="text" name="email" /><br /> 介 紹:<textarea rows="6" cols="25" name="content"></textarea><br /> <input type="submit" value="提交" name="send" /> </form>
Demo6.php
<?php
//第一步,先驗(yàn)證是否是 Demo5.php 提交過(guò)來(lái)
//只要是按鈕點(diǎn)到我這里來(lái)的,那么就說(shuō)明,其他超級(jí)變局變量都應(yīng)該存在
//如果 send 是存在的,那么就說(shuō)是點(diǎn)過(guò)來(lái),否則,跳回
if(!isset($_POST['send']) || $_POST['send'] != '提交'){
header('Location:Demo5.php');
exit; //跳回去了,下面就不需要執(zhí)行了,那么就 exit;
}
//第二步,接收所有數(shù)據(jù)
$username = trim($_POST['username']);
$password = $_POST['password'];
$code = trim($_POST['code']);
$email = trim($_POST['email']);
$content = htmlspecialchars(trim($_POST['content']));
//用戶(hù)名不能小于 2 位,不能大于 10 位
if(strlen($username)<2||strlen($username)>10){
echo "<script>alert('用戶(hù)名不能小于兩位或者大于10');history.back();</script>";
exit;
}
//密碼不能小于六位
if(strlen($password) <6){
echo "<script>alert('密碼不能小于6位');history.back();</script>";
exit;
}
//驗(yàn)證碼必須是 4 位,必須是數(shù)字
if(strlen($code)!=4 || !is_numeric($code)){
echo "<script>alert('驗(yàn)證碼必須是 4 位并且是純數(shù)字');history.back();</script>";
exit;
}
//驗(yàn)證電子郵件
if(!preg_match('/^([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})$/',$email)){
echo "<script>alert('電子郵箱不合法');history.back();</script>";
exit;
}
echo '用戶(hù)名:'.$username.'<br/>';
echo '電子郵件:'.$email.'<br/>';
echo '個(gè)人介紹:'.$content;
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php 表單驗(yàn)證實(shí)現(xiàn)代碼
- ThinkPHP表單自動(dòng)提交驗(yàn)證實(shí)例教程
- php用戶(hù)注冊(cè)頁(yè)面利用js進(jìn)行表單驗(yàn)證具體實(shí)例
- thinkPHP實(shí)現(xiàn)表單自動(dòng)驗(yàn)證
- php下常用表單驗(yàn)證的正則表達(dá)式
- 基于PHP+Ajax實(shí)現(xiàn)表單驗(yàn)證的詳解
- php基于表單密碼驗(yàn)證與HTTP驗(yàn)證用法實(shí)例
- PHP代碼實(shí)現(xiàn)表單數(shù)據(jù)驗(yàn)證類(lèi)
- PHP Yii框架之表單驗(yàn)證規(guī)則大全
- ThinkPHP 表單自動(dòng)驗(yàn)證運(yùn)用示例
- php常用表單驗(yàn)證類(lèi)用法實(shí)例
- Ajax提交表單時(shí)驗(yàn)證碼自動(dòng)驗(yàn)證 php后端驗(yàn)證碼檢測(cè)
相關(guān)文章
PHP基于反射機(jī)制實(shí)現(xiàn)自動(dòng)依賴(lài)注入的方法詳解
這篇文章主要介紹了PHP基于反射機(jī)制實(shí)現(xiàn)自動(dòng)依賴(lài)注入的方法,結(jié)合實(shí)例形式分析了php使用反射實(shí)現(xiàn)自動(dòng)依賴(lài)注入的步驟、原理與相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
php循環(huán)語(yǔ)句 for()與foreach()用法區(qū)別介紹
下面我用兩個(gè)實(shí)例來(lái)介紹一下關(guān)于在php中foreach與for語(yǔ)句用法區(qū)別介紹,有需要的朋友可參考一下2012-09-09
php通過(guò)淘寶API查詢(xún)IP地址歸屬等信息
這篇文章主要介紹了php通過(guò)淘寶API查詢(xún)IP地址歸屬等信息的相關(guān)資料,需要的朋友可以參考下2015-12-12
PHP 5.0對(duì)象模型深度探索之類(lèi)的靜態(tài)成員
類(lèi)的靜態(tài)成員與一般的類(lèi)成員不同: 靜態(tài)成員與對(duì)象的實(shí)例無(wú)關(guān),只與類(lèi)本身有關(guān)。他們用來(lái)實(shí)現(xiàn)類(lèi)要封裝的功能和數(shù)據(jù),但不包括特定對(duì)象的功能和數(shù)據(jù),靜態(tài)成員包括靜態(tài)方法和靜態(tài)屬性。2008-03-03
set_include_path在win和linux下的區(qū)別
2008-01-01
PHP遞歸實(shí)現(xiàn)層級(jí)樹(shù)狀展開(kāi)
這篇文章主要為大家詳細(xì)介紹了PHP遞歸實(shí)現(xiàn)層級(jí)樹(shù)狀展開(kāi)的相關(guān)資料,需要的朋友可以參考下2016-04-04
PHP實(shí)現(xiàn)上傳文件并存進(jìn)數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)上傳文件并存進(jìn)數(shù)據(jù)庫(kù)的方法,涉及php文件上傳所涉及的文件與表單操作及數(shù)據(jù)庫(kù)操作相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-07-07

