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 无法载入mysql扩展
Mar 12 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
PHP中使用BigMap实例
Mar 30 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
Oct 29 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
mac os快速切换多个PHP版本的方法
Mar 07 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
Aug 17 PHP
PHP 计算两个时间段之间交集的天数示例
Oct 24 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 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 批量删除数据的方法分析
2009/10/30 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
python 实现多维数组(array)排序
2020/02/28 Python
英国著名的药妆网站:Escentual
2016/07/29 全球购物
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
《临死前的严监生》教学反思
2014/02/13 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技