1.htmlspecialchars()

 htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。预定义的字符是:

  • & (和号) 成为 &
  • " (双引号) 成为 "
  • ' (单引号) 成为 '
  • < (小于) 成为 &lt;
  • > (大于) 成为 &gt;

2.一般用到的验证输入的函数:

function test_input($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

3.preg_match("/^[a-zA-Z ]*$/",$name) 匹配只包含字母和空格的情况,多用于验证名字。

 preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email) 对邮箱进行验证

preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website) 对邮箱进行验证

4.一个完整的表单验证程序

  1 <!DOCTYPE HTML>
  2 <html>
  3 <head>
  4 <meta charset="utf-8">
  5 <title>XXXXXXX</title>
  6 <style>
  7 .error {color: #FF0000;}
  8 </style>
  9 </head>
 10 <body>
 11
 12 <?php
 13 // 定义变量并默认设置为空值
 14 $nameErr = $emailErr = $genderErr = $websiteErr = "";
 15 $name = $email = $gender = $comment = $website = "";
 16
 17 if ($_SERVER["REQUEST_METHOD"] == "POST")
 18 {
 19     if (empty($_POST["name"]))
 20     {
 21         $nameErr = "名字是必需的";
 22     }
 23     else
 24     {
 25         $name = test_input($_POST["name"]);
 26         // 检测名字是否只包含字母跟空格
 27         if (!preg_match("/^[a-zA-Z ]*$/",$name))
 28         {
 29             $nameErr = "只允许字母和空格";
 30         }
 31     }
 32
 33     if (empty($_POST["email"]))
 34     {
 35       $emailErr = "邮箱是必需的";
 36     }
 37     else
 38     {
 39         $email = test_input($_POST["email"]);
 40         // 检测邮箱是否合法
 41         if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
 42         {
 43             $emailErr = "非法邮箱格式";
 44         }
 45     }
 46
 47     if (empty($_POST["website"]))
 48     {
 49         $website = "";
 50     }
 51     else
 52     {
 53         $website = test_input($_POST["website"]);
 54         // 检测 URL 地址是否合法
 55         if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
 56         {
 57             $websiteErr = "非法的 URL 的地址";
 58         }
 59     }
 60
 61     if (empty($_POST["comment"]))
 62     {
 63         $comment = "";
 64     }
 65     else
 66     {
 67         $comment = test_input($_POST["comment"]);
 68     }
 69
 70     if (empty($_POST["gender"]))
 71     {
 72         $genderErr = "性别是必需的";
 73     }
 74     else
 75     {
 76         $gender = test_input($_POST["gender"]);
 77     }
 78 }
 79
 80 function test_input($data)
 81 {
 82     $data = trim($data);
 83     $data = stripslashes($data);
 84     $data = htmlspecialchars($data);
 85     return $data;
 86 }
 87 ?>
 88
 89 <h2>PHP 表单验证实例</h2>
 90 <p><span class="error">* 必需字段。</span></p>
 91 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
 92    名字: <input type="text" name="name" value="<?php echo $name;?>">
 93    <span class="error">* <?php echo $nameErr;?></span>
 94    <br><br>
 95    E-mail: <input type="text" name="email" value="<?php echo $email;?>">
 96    <span class="error">* <?php echo $emailErr;?></span>
 97    <br><br>
 98    网址: <input type="text" name="website" value="<?php echo $website;?>">
 99    <span class="error"><?php echo $websiteErr;?></span>
100    <br><br>
101    备注: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
102    <br><br>
103    性别:
104    <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?>  value="female">女
105    <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?>  value="male">男
106    <span class="error">* <?php echo $genderErr;?></span>
107    <br><br>
108    <input type="submit" name="submit" value="Submit">
109 </form>
110
111 <?php
112 echo "<h2>您输入的内容是:</h2>";
113 echo $name;
114 echo "<br>";
115 echo $email;
116 echo "<br>";
117 echo $website;
118 echo "<br>";
119 echo $comment;
120 echo "<br>";
121 echo $gender;
122 ?>
123
124 </body>
125 </html>

转载于:https://www.cnblogs.com/godlei/p/6502114.html

PHP验证时有用的几段代码相关推荐

  1. 如何运行一段python代码_Python退出时强制运行一段代码如何实现 Python退出时强制运行一段代码实现方法...

    本篇文章小编给大家分享一下Python退出时强制运行一段代码实现方法,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 设想这样一个场景,你要给一个项目开发测 ...

  2. java类添加单元测试代码_如何在java中单元测试时跳过一段代码

    如果问题确实是: 如何在Java 然后我给出的答案同意单元测试时,我跳过一段代码.依赖注入,嘲讽框架绝对是真正的单元测试的正确途径. 但是,如果问题是: 使用JUnit(或其他单元测试框架) 然后我想 ...

  3. python不运行一段代码_Python:当满足某个条件而不使用“if”语句时跳过一段代码(计算)...

    我有一小段代码,我正试图以更好的方式编写,因为这段代码有很多"if"语句.这是一些大项目的小代码.问题是:在代码运行时,函数"f"."g"或 ...

  4. java中怎么判断一段代码时线程安全还是非线程安全_Java 中的多线程你只要看这一篇就够了...

    引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...

  5. 当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的...

    英文原文:What Programmers Say vs. What They Mean 你是否听到过同事说"这段代码不言自明"?你的同事的这句话的实际意思是这段代码不需要写注释. ...

  6. c语言编译没问题 但运行之后没反应,这段代码编译联接都成功,可是运行时没反应...

    这段代码编译连接都成功,可是运行时没反应啊 用C语言编程实现单链表的基本操作.有必要的类型说明,并完成下述函数功能: (1)CreateList( ):逆序建立一个(带有头结点的)单链表,在键盘上按顺 ...

  7. 写一段代码在遍历 ArrayList 时移除一个元素?

    今天楼主继续分享一道经典Java面试题并进行相关知识点的拓展: 上题: 写一段代码在遍历 ArrayList 时移除一个元素? 该问题的关键在于面试者使用的是 ArrayList 的 remove() ...

  8. 在php里面找出有用的代码,如何在多个源代码文件中 找到某段代码?

    有一个网站里面有个图片链接已经失效,并且某明奇妙多出了一些字符. 现在我想在多个源代码文件中php或者数据库中找到这段代码,并且修正. 请问有没有好的方法? 回复内容: 有一个网站里面有个图片链接已经 ...

  9. 怎么查看java的引用类_一段代码看 Java 引用类型

    Java 中的操作数(不知道叫什么,相对于 bytecode 而言,类似 CPU 的操作码和操作数)分为值类型和引用类型: 值类型就是直接存储最终数值的,如 char, int, float, dou ...

  10. 资源已存在时POST的HTTP响应代码

    我正在构建一个允许客户端存储对象的服务器. 这些对象在客户端完全构造,完整的对象ID对于对象的整个生命周期是永久的. 我已经定义了API,以便客户端可以使用PUT创建或修改对象: PUT /objec ...

最新文章

  1. 缺陷分析与软件质量的关系
  2. myeclipse生成getset注释
  3. [剑指offer]面试题48:不能被继承的类
  4. openshift启动失败
  5. BZOJ5092:[Lydsy1711月赛]分割序列(贪心,高维前缀和)
  6. 爬虫笔记(十)——学会使用Fiddler
  7. 让在vc6创建的程序中,控件可以随xp风格的改变而变化,不用再程序中添加代码来自己实现~...
  8. 构建手机apk的过程
  9. word文档 文献尾注修改样式
  10. 如何利用DTM预览功能来验证新版本的配置是否正确?
  11. restapi是什么意思_RESTful-API还没理解么?只是因为你没看这篇文章,其实它很简单...
  12. 健康医疗类APP苹果审核5.2.1
  13. 玉米社:软文营销推广_文案内容撰写需要注意哪些问题?
  14. [FAQ12112]在电池低电压时,如何关闭camera的闪光功能
  15. html5 video 手机端视频播放全屏显示
  16. 三极管电路必懂的几种分析方法
  17. 2016ACM/ICPC亚洲区大连站现场赛题解报告
  18. 智能座舱域控制器技术发展趋势分析
  19. 关于GIT关机之后idea全报绿的解决
  20. 七.卡尔曼滤波器开发实践之七: 无损卡尔曼滤波器(UKF)进阶-实例篇

热门文章

  1. java类的加载与初始化_Java类何时以及如何加载和初始化?
  2. 网络安全:个人网站防黑安全技巧
  3. 【论文笔记】FaceNet: A Unified Embedding for Face Recognition and Clustering
  4. 基于Python开发用于钞票认证的神经网络
  5. SQLServer数据库写操作报错String or binary data would be truncated问题解决
  6. jsecharts如何改变占比_什么是基础代谢?如何提高基础代谢?基础代谢对减肥很重要...
  7. c语言编写的程序不具备移植性,《C语言》试卷1
  8. 现在大火的Web3是什么 web1 web2
  9. 数据库学习笔记6-隔离级别 Serializable
  10. 区块链 Fisco bcos 智能合约(12)-Solidity的基础特性