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 相关文章推荐
在IIS上安装PHP4.0正式版
Oct 09 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
php生成excel文件的简单方法
Feb 08 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
Thinkphp中的curd应用实用要点
Jan 04 PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 PHP
php编译安装php-amq扩展简明教程
Jun 25 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
PHP addAttribute()函数讲解
Feb 03 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 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
十天学会php(3)
2006/10/09 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
实例详解jQuery的无new构建
2016/08/02 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
举例详解Python中yield生成器的用法
2015/08/05 Python
在python里从协程返回一个值的示例
2019/02/19 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
python安装sklearn模块的方法详解
2020/11/28 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
中国旅游网站:同程旅游
2016/09/11 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
几个SQL的面试题
2014/03/08 面试题
会计学专业学生的求职信范文
2014/01/27 职场文书
项目建议书模板
2014/05/12 职场文书
房屋租房协议书范本
2014/12/04 职场文书
写给老婆的保证书
2015/02/27 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
三国演义读书笔记
2015/06/25 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript
如何通过cmd 连接阿里云服务器
2022/04/18 Servers
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL