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 相关文章推荐
FCKeditor添加自定义按钮
Mar 27 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
PHP的Yii框架的常用日志操作总结
Dec 08 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 PHP
PHP使用自定义方法实现数组合并示例
Jul 07 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
PHP微信支付实例解析
Jul 22 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 PHP
如何在PHP中生成随机数
Jun 04 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
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
《两个铁球同时着地》教学反思
2014/02/13 职场文书
公益广告标语
2014/06/19 职场文书
党员示范岗材料
2014/12/19 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
小学同学聚会感言
2015/07/30 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers