本文实例讲述了PHP表单与验证。分享给大家供大家参考,具体如下:
Demo1.php
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
ob_start();
//重新导向一个 URL
//header()
//header('Location:Demo2.php');
//上面这句话可以自动跳转到你所想要的页面。
//header('Location:http://www.baidu.com');
//上面这句话自动跳转到百度上面去。
echo 'baidu.com' ;
header( 'Location:http://www.baidu.com' );
//在执行 header() 函数,必须注意,之前不能有任何浏览器输出
?>
|
Demo2.php
1
2
3
4
5
6
7
|
<?php
ob_start();
echo '1232' ;
//字符编码
header( 'Content-Type:text/html;charset=GBK' ); //设置页面编码
echo '我是中文' ;
?>
|
Demo3.php
1
2
3
4
|
<form method= "post" action= "Demo4.php" >
姓名:<input type= "text" name= "username" /><br />
<input type= "submit" value= "提交" />
</form>
|
Demo4.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?php
//第一步,接收前面表单中的值。
//一个,username
//接收 $_POST['username']
//echo $_POST['username'];
//你需要明白一个道理,空字符串也是数据,也可以赋值给 $_POST['username'];
//使用 isset() 验证是否正常提交是很准确的
//目前所说的非法提交,是你没有经过表单提交,没有生成全局变量,而不是 username
//这个字段为空
// if(isset($_POST['username'])){
// echo '正常提交';
// }else{
// echo '非法提交';
// }
//!empty($_POST['username']) 和 == ''基本一样,但是,并不能说,人家是非法的
//只能说人家没有填而已。
// if(!empty($_POST['username'])){
// echo '正常提交';
// }else{
// echo '非法提交';
// }
//建议使用
if (isset( $_POST [ 'username' ])){
echo '正常提交' ;
//在输出之前,为了页面安全性
//echo $_POST['username'];
$username = $_POST [ 'username' ];
$username = trim( $username );
$username = htmlspecialchars( $username );
if ( strlen ( $username ) < 2) {
echo '用户名不能小于两位' ;
exit ();
}
if (! is_numeric ( $username )) {
echo '用户名必须是纯数字' ;
exit ();
}
echo $username ; //<strong>阅谁问君诵</strong>
} else {
echo '非法提交' ;
}
?>
|
Demo5.php
1
2
3
4
5
6
7
8
|
<form method= "post" action= "Demo6.php" >
用户名:<input type= "text" name= "username" /><br />
密 码:<input type= "text" name= "password" /><br />
验证码:<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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
<?php
//第一步,先验证是否是 Demo5.php 提交过来
//只要是按钮点到我这里来的,那么就说明,其他超级变局变量都应该存在
//如果 send 是存在的,那么就说是点过来,否则,跳回
if (!isset( $_POST [ 'send' ]) || $_POST [ 'send' ] != '提交' ){
header( 'Location:Demo5.php' );
exit ; //跳回去了,下面就不需要执行了,那么就 exit;
}
//第二步,接收所有数据
$username = trim( $_POST [ 'username' ]);
$password = $_POST [ 'password' ];
$code = trim( $_POST [ 'code' ]);
$email = trim( $_POST [ 'email' ]);
$content = htmlspecialchars(trim( $_POST [ 'content' ]));
//用户名不能小于 2 位,不能大于 10 位
if ( strlen ( $username )<2|| strlen ( $username )>10){
echo "<script>alert('用户名不能小于两位或者大于10');history.back();</script>" ;
exit ;
}
//密码不能小于六位
if ( strlen ( $password ) <6){
echo "<script>alert('密码不能小于6位');history.back();</script>" ;
exit ;
}
//验证码必须是 4 位,必须是数字
if ( strlen ( $code )!=4 || ! is_numeric ( $code )){
echo "<script>alert('验证码必须是 4 位并且是纯数字');history.back();</script>" ;
exit ;
}
//验证电子邮件
if (!preg_match( '/^([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})$/' , $email )){
echo "<script>alert('电子邮箱不合法');history.back();</script>" ;
exit ;
}
echo '用户名:' . $username . '<br/>' ;
echo '电子邮件:' . $email . '<br/>' ;
echo '个人介绍:' . $content ;
?>
|
希望本文所述对大家PHP程序设计有所帮助。