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 显示指定路径下的图片
Oct 29 PHP
10个实用的PHP代码片段
Sep 02 PHP
供参考的 php 学习提高路线分享
Oct 23 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
PHP最常用的正则表达式
Feb 13 PHP
Thinkphp5框架使用validate实现验证功能的方法
Aug 27 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 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
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
php实现用户登陆简单实例
2017/04/04 PHP
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
再探JavaScript作用域
2014/09/24 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
python async with和async for的使用
2019/06/20 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
python 制作简单的音乐播放器
2020/11/25 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
给老师的检讨书
2014/02/11 职场文书
关于运动会的口号
2014/06/07 职场文书
护士求职信
2014/07/05 职场文书
环保公益策划方案
2014/08/15 职场文书
学习张林森心得体会
2014/09/10 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
春节慰问信范文
2015/02/15 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python