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类
Jul 15 PHP
无数据库的详细域名查询程序PHP版(5)
Oct 09 PHP
php 静态化实现代码
Mar 20 PHP
php数据库抽象层 PDO
May 07 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 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 获取一个月第一天与最后一天的代码
2010/05/16 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
开始着手第一个Django项目
2015/07/15 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
python 网络编程详解及简单实例
2017/04/25 Python
python中format()函数的简单使用教程
2018/03/14 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
Python读写压缩文件的方法
2020/07/30 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
自我评价中英文语句
2013/11/30 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
珍惜资源的建议书
2014/08/26 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书