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中目录,文件操作详谈
Mar 19 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
PHP生成sitemap.xml地图函数
Nov 13 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
给ECShop添加最新评论
Jan 07 PHP
php操作redis缓存方法分享
Jun 03 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 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+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
PHP合并静态文件详解
2014/11/14 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
javascript实现拖放效果
2015/12/16 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
代码详解JS操作剪贴板
2018/02/11 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
Python爬虫中urllib库的进阶学习
2018/01/05 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
企业为何需要商业计划书
2013/12/26 职场文书
研讨会主持词
2014/04/02 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
班级班风口号大全
2015/12/25 职场文书
python绘制箱型图
2021/04/27 Python
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers
基于redis+lua进行限流的方法
2022/07/23 Redis