您的位置:首页 > 编程语言 > PHP开发

php笔记之表单验证

2016-04-03 19:40 567 查看
1.php

<meta charset="utf-8">
<form method="post" action="2.php">
姓名:<input type="text" name="username" /><br />
<input type="submit" value="提交" />
</form>


2.php

<?php

header("Content-Type:text/html;charset=utf8");//设置页面编码

// 第一步,接收前面表单中的值
// 一个,username
// 接收 $_POST['username']

// echo $_POST['username'];

// 空字符串也是数据
// 使用isset()验证是否正常提交是很准确的
// 目前所说的非法提交,是没有经过表单的提交,没有生成全局变量,而不是username这个字段为空

if(isset($_POST['username'])){
echo '正常提交';
$username = $_POST['username'];
// 在输出之前,为了页面的安全性,做一些工作
$username = trim($username);//除去数据中的前后空格
$username = htmlspecialchars($username);//过滤html语句

if(strlen($username) < 2){
echo '用户名不能小于两位';
exit;
}

if(!is_numeric($username)){
echo '用户名必须是数字';
exit;
}
echo $username;
}
else{
echo '非法提交';
}
?>


3.php

<meta charset="utf-8">
<form method="post" action="4.php">
用户名:<input type="text" name="username" /><br />
密 码:<input type="passward" name="passward" /><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>

4.php

<?php

header("Content-Type:text/html;charset=utf8");//设置页面编码

// 第一步,先验证是否由3.php提交过来的
// 只要是按钮点到这里来的,那么就说明,其他超级全局变量都应该存在

// 如果send是存在的,那么就是点过来的,否则,跳回3.php的页面
if(!isset($_POST['send'])||$_POST['send']!='提交'){
header('Location:3.php');//自动跳转页面
exit;
}

// 第二步,接收所有数据
// 判断之前先过滤一下
$username = trim($_POST['username']);
$passward = $_POST['passward'];
$code = $_POST['code'];
$content = htmlspecialchars(trim($_POST['content']));

// 用户名不能小于两位,不能大于10位
if(strlen($username) < 2 || strlen($username) > 10){
// 使用js来跳转,有提示的
echo "<script>alert('用户名不能小于两位,不能大于10位');history.back()</script>";
exit;
}

// 密码不能小于六位
if(strlen($passward) < 6){
echo "<script>alert('密码不能小于六位');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.'<br />';
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: