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的FTP学习(一)
Oct 09 PHP
PHP新手上路(二)
Oct 09 PHP
一些常用的php简单命令代码集锦
Sep 24 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 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中文本操作的类
2007/03/17 PHP
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
jQuery 树形结构的选择器
2010/02/15 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
架构师岗位职责
2013/11/18 职场文书
我的大学生活职业生涯规划
2014/01/02 职场文书
跟单文员岗位职责
2014/01/03 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
承租经营合作者协议书
2014/10/01 职场文书
python小程序之飘落的银杏
2021/04/17 Python
Python借助with语句实现代码段只执行有限次
2022/03/23 Python
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers