欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第11章 表单与验证

程序员文章站 2024-01-25 14:26:58
...

Demo1.php

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

<?php
	ob_start();
	echo '1232';
	//字符编码
	header('Content-Type:text/html;charset=GBK'); //设置页面编码
	echo '我是中文';
?>

 

Demo3.php

<form method="post" action="Demo4.php">
	姓名:<input type="text" name="username" /><br />
	<input type="submit" value="提交" />
</form>

 

Demo4.php

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

<form method="post" action="Demo6.php">
	用户名:<input type="text" name="username" /><br />
	密&nbsp;&nbsp;码:<input type="text" name="password" /><br />
	验证码:<input type="text" name="code" size="5" />1234<br />
	邮&nbsp;&nbsp;箱:<input type="text" name="email" /><br />
	介&nbsp;&nbsp;绍:<textarea rows="6" cols="25" name="content"></textarea><br />
	<input type="submit" value="提交" name="send" />
</form>

 

Demo6.php

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