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无限分类的类
Jan 02 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
Apr 25 PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 PHP
PHP eval函数使用介绍
Dec 08 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
php实现图片等比例缩放代码
Jul 23 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 24 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
用PHP实现Ftp用户的在线管理的代码
2007/03/06 PHP
奇怪的PHP引用效率问题分析
2012/03/23 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
浅谈Python的文件类型
2016/05/30 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
青春无悔演讲稿
2014/05/08 职场文书
经管应届生求职信范文
2014/05/18 职场文书
交通事故委托书范本
2014/09/28 职场文书
营销与策划实训报告
2014/11/05 职场文书
工程款申请报告
2015/05/15 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js