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 相关文章推荐
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
php session的锁和并发
Jan 22 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
PHP抽象类与接口的区别实例详解
May 09 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开发框架总结收藏
2008/04/24 PHP
PHP MSSQL 存储过程的方法
2008/12/24 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
Python实现文件按照日期命名的方法
2015/07/09 Python
python中模块的__all__属性详解
2017/10/26 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
django session完成状态保持的方法
2018/11/27 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
护理学院专科毕业生求职信
2014/06/28 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
小学生暑假安全公约
2015/07/14 职场文书
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL