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开发中常用的8个小技巧
Aug 27 PHP
上传文件先创建目录 再上传到目录里面去
Dec 29 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
探讨捕获php错误信息方法的详解
Jun 09 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
PHP中数据类型转换的三种方式
Apr 02 PHP
PHP IDE phpstorm 常用快捷键
May 18 PHP
php实现短信发送代码
Jul 05 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
详解PHP序列化和反序列化原理
Jan 15 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调用Linux命令权限不足问题解决方法
2015/02/07 PHP
设定php简写功能的方法
2019/11/28 PHP
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
webpack优化的深入理解
2018/12/10 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
Python中用于计算对数的log()方法
2015/05/15 Python
python函数的5种参数详解
2017/02/24 Python
python 构造三维全零数组的方法
2018/11/12 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
Django如何将URL映射到视图
2019/07/29 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
Python容器类型公共方法总结
2020/08/19 Python
python从Oracle读取数据生成图表
2020/10/14 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
中专生求职自荐信范文
2013/12/22 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
校园运动会广播稿
2014/10/06 职场文书
个人催款函范文
2015/06/23 职场文书
迎国庆主题班会
2015/08/17 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技