PHP验证时有用的几段代码
1.htmlspecialchars()
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。预定义的字符是:
- & (和号) 成为 &
- " (双引号) 成为 "
- ' (单引号) 成为 '
- < (小于) 成为 <
- > (大于) 成为 >
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验证时有用的几段代码相关推荐
- 如何运行一段python代码_Python退出时强制运行一段代码如何实现 Python退出时强制运行一段代码实现方法...
本篇文章小编给大家分享一下Python退出时强制运行一段代码实现方法,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 设想这样一个场景,你要给一个项目开发测 ...
- java类添加单元测试代码_如何在java中单元测试时跳过一段代码
如果问题确实是: 如何在Java 然后我给出的答案同意单元测试时,我跳过一段代码.依赖注入,嘲讽框架绝对是真正的单元测试的正确途径. 但是,如果问题是: 使用JUnit(或其他单元测试框架) 然后我想 ...
- python不运行一段代码_Python:当满足某个条件而不使用“if”语句时跳过一段代码(计算)...
我有一小段代码,我正试图以更好的方式编写,因为这段代码有很多"if"语句.这是一些大项目的小代码.问题是:在代码运行时,函数"f"."g"或 ...
- java中怎么判断一段代码时线程安全还是非线程安全_Java 中的多线程你只要看这一篇就够了...
引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...
- 当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的...
英文原文:What Programmers Say vs. What They Mean 你是否听到过同事说"这段代码不言自明"?你的同事的这句话的实际意思是这段代码不需要写注释. ...
- c语言编译没问题 但运行之后没反应,这段代码编译联接都成功,可是运行时没反应...
这段代码编译连接都成功,可是运行时没反应啊 用C语言编程实现单链表的基本操作.有必要的类型说明,并完成下述函数功能: (1)CreateList( ):逆序建立一个(带有头结点的)单链表,在键盘上按顺 ...
- 写一段代码在遍历 ArrayList 时移除一个元素?
今天楼主继续分享一道经典Java面试题并进行相关知识点的拓展: 上题: 写一段代码在遍历 ArrayList 时移除一个元素? 该问题的关键在于面试者使用的是 ArrayList 的 remove() ...
- 在php里面找出有用的代码,如何在多个源代码文件中 找到某段代码?
有一个网站里面有个图片链接已经失效,并且某明奇妙多出了一些字符. 现在我想在多个源代码文件中php或者数据库中找到这段代码,并且修正. 请问有没有好的方法? 回复内容: 有一个网站里面有个图片链接已经 ...
- 怎么查看java的引用类_一段代码看 Java 引用类型
Java 中的操作数(不知道叫什么,相对于 bytecode 而言,类似 CPU 的操作码和操作数)分为值类型和引用类型: 值类型就是直接存储最终数值的,如 char, int, float, dou ...
- 资源已存在时POST的HTTP响应代码
我正在构建一个允许客户端存储对象的服务器. 这些对象在客户端完全构造,完整的对象ID对于对象的整个生命周期是永久的. 我已经定义了API,以便客户端可以使用PUT创建或修改对象: PUT /objec ...
最新文章
- 缺陷分析与软件质量的关系
- myeclipse生成getset注释
- [剑指offer]面试题48:不能被继承的类
- openshift启动失败
- BZOJ5092:[Lydsy1711月赛]分割序列(贪心,高维前缀和)
- 爬虫笔记(十)——学会使用Fiddler
- 让在vc6创建的程序中,控件可以随xp风格的改变而变化,不用再程序中添加代码来自己实现~...
- 构建手机apk的过程
- word文档 文献尾注修改样式
- 如何利用DTM预览功能来验证新版本的配置是否正确?
- restapi是什么意思_RESTful-API还没理解么?只是因为你没看这篇文章,其实它很简单...
- 健康医疗类APP苹果审核5.2.1
- 玉米社:软文营销推广_文案内容撰写需要注意哪些问题?
- [FAQ12112]在电池低电压时,如何关闭camera的闪光功能
- html5 video 手机端视频播放全屏显示
- 三极管电路必懂的几种分析方法
- 2016ACM/ICPC亚洲区大连站现场赛题解报告
- 智能座舱域控制器技术发展趋势分析
- 关于GIT关机之后idea全报绿的解决
- 七.卡尔曼滤波器开发实践之七: 无损卡尔曼滤波器(UKF)进阶-实例篇
热门文章
- java类的加载与初始化_Java类何时以及如何加载和初始化?
- 网络安全:个人网站防黑安全技巧
- 【论文笔记】FaceNet: A Unified Embedding for Face Recognition and Clustering
- 基于Python开发用于钞票认证的神经网络
- SQLServer数据库写操作报错String or binary data would be truncated问题解决
- jsecharts如何改变占比_什么是基础代谢?如何提高基础代谢?基础代谢对减肥很重要...
- c语言编写的程序不具备移植性,《C语言》试卷1
- 现在大火的Web3是什么 web1 web2
- 数据库学习笔记6-隔离级别 Serializable
- 区块链 Fisco bcos 智能合约(12)-Solidity的基础特性