PHP入门教程之表单与验证实例详解


Posted in PHP onSeptember 11, 2016

本文实例讲述了PHP表单与验证。分享给大家供大家参考,具体如下:

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 />
  密  码:<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

<?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程序设计有所帮助。

PHP 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
PHP中的cookie
Nov 26 PHP
有关 PHP 和 MySQL 时区的一点总结
Mar 26 PHP
用PHP实现读取和编写XML DOM代码
Apr 07 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
Destoon模板制作简明教程
Jun 20 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
Laravel实现autoload方法详解
May 07 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 #PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 #PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 #PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 #PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 #PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 #PHP
PHP入门教程之数学运算技巧总结
Sep 11 #PHP
You might like
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
jquery一句话全选/取消全选
2011/03/01 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
canvas知识总结
2017/01/25 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
python通过文件头判断文件类型
2015/10/30 Python
解决uWSGI的编码问题详解
2017/03/24 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
python列表的逆序遍历实现
2020/04/20 Python
Linux内核产生并发的原因
2012/07/13 面试题
经济学博士求职自荐信范文
2013/11/23 职场文书
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
年度考核自我鉴定
2014/03/19 职场文书
司法建议书范文
2014/05/13 职场文书
2014年征兵标语
2014/06/20 职场文书
入党函调证明材料
2014/12/24 职场文书
北京导游词
2015/02/12 职场文书
会计稽核岗位职责
2015/04/13 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
SQL之各种join小结详细讲解
2021/08/04 MySQL
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫