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 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
处理php自动反斜杠的函数代码
Jan 05 PHP
带密匙的php加密解密示例分享
Jan 29 PHP
php全角字符转换为半角函数
Feb 07 PHP
php json转换成数组形式代码分享
Nov 10 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
thinkPHP框架中执行事务的方法示例
May 31 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
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
php内嵌函数用法实例
2015/03/20 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
python监控键盘输入实例代码
2018/02/09 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python命令行click参数用法解析
2019/12/19 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
英语教学随笔感言
2014/02/20 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
忠诚教育心得体会
2014/09/03 职场文书
大学生毕业个人总结
2015/02/15 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫