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 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
PHP 遍历XP文件夹下所有文件
Nov 27 PHP
php MsSql server时遇到的中文编码问题
Jun 11 PHP
destoon首页调用求购供应信息的地区名称的方法
Aug 21 PHP
PHP大转盘中奖概率算法实例
Oct 21 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
PHP简单遍历对象示例
Sep 28 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
PHP实现基于状态的责任链审批模式详解
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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
PHP可变函数学习小结
2015/11/29 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
php如何获取Http请求
2020/04/30 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
深入理解JavaScript定时机制
2010/10/29 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
Python中生成器和yield语句的用法详解
2015/04/17 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
为什么说python适合写爬虫
2020/06/11 Python
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
幼儿园亲子活动方案
2014/01/29 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
创业计划书之游泳馆
2019/09/16 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
Python 阶乘详解
2021/10/05 Python
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang