PHP表单使用实例
来源:互联网 发布:触手tv人气软件 编辑:程序博客网 时间:2024/06/05 21:18
Web表单的功能就是让浏览者和网站有一个互动的平台。表单主要用来在网页中发送数据到服务器。例如,你注册信息是所使用的表单,当你填写完信息时,你要提交(submit),提交就是将你表单中的内容从客户端浏览器传送到服务器端,经过PHP程序进行处理后,再将用户所需要的信息传递回客户端浏览器上,通过获取用户的信息,使PHP与Web表单实现交互。
本文实现了一个表单验证的列子:
1:通过用户输入的名字,邮件,网址,性别等信息,并对相关信息进行合法性验证。
2:用户输入错误,提示红色错误提示信息。
3:输入信息全部合法之后,才显示用户的输入信息。
表单验证代码如下:
<html><head> <meta charset="utf-8"> <title>PHP学习</title></head><style> .error {color: #FF0000;}</style><body><?php function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } // 定义变量并默认设置为空值 $name = $email = $gender = $comment = $website = ""; $nameErr = $emailErr = $genderErr = $commentErr = $websiteErr =""; $flag = true; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])){ $nameErr = "姓名是必须填的"; $flag = false; } else { $name = test_input($_POST["name"]); // 检查姓名是否包含字母和空白字符 if (!preg_match("/^[a-zA-Z ]*$/", $name)){ $nameErr = "只允许字母和空格"; $flag = false; } } if (empty($_POST["email"])){ $emailErr = "邮件是必填的"; $flag = false; } else { $email = test_input($_POST["email"]); // 检查邮件地址语法是否有效 if(!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)){ $emailErr = "无效的email格式"; $flag = false; } } if (empty($_POST["website"])){ $flag = false; } else { $website = test_input($_POST["website"]); // 检查URL地址语法是否有效(正则表达式也允许URL中的斜杠) if(!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)){ $websiteErr = "无效的URL"; $flag = false; } } if (empty($_POST["gender"])){ $genderErr = "性别是必选的"; $flag = false; } else { $gender = test_input($_POST["gender"]); } if (!empty($_POST["comment"])){ $comment = test_input($_POST["comment"]); } }?><h2>PHP 表单验证实例</h2><form method="post" action="<?php echohtmlspecialchars($_SERVER["PHP_SELF"]);?>"> 名字:<inputtype="text" name="name"> <span class="error">*<?php echo$nameErr;?></span> <br><br> E-mail:<input type="text" name="email"> <span class="error">* <?php echo$emailErr;?></span> <br><br> 网址:<inputtype="text" name="website"> <span class="error">* <?php echo$websiteErr;?></span> <br><br> 备注:<textareaname="comment" rows="5"cols="40"></textarea> <br><br> 性别: <input type="radio" name="gender"value="female">女 <input type="radio" name="gender"value="male">男 <span class="error">* <?php echo$genderErr;?></span> <br><br> <input type="submit" name="submit" value="提交"></form><?php if ($_SERVER["REQUEST_METHOD"] == "POST" and $flag) { echo "<h2>您输入的内容是:</h2>"; echo "名字:" .$name . "<br>"; echo "E-mail:" . $email . "<br>"; echo "网址:" . $website . "<br>"; echo "备注:" . $_POST["comment"] . "<br>"; echo "性别:" . $_POST["gender"] . "<br>"; }?></body></html>
初始状态:
运行结果:
用到的知识:
1:$_SERVER[“PHP_SELF”]是一个超全局变量,返回房钱执行脚本的文件名。
2:htmlspecialchars()函数把特殊字符转化为HTML实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 < 和 > 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。
3:可以通过$_SERVER[“REQUEST_METHOD”]来检测表单是否被提交。
4:在用户提交表单时,应进行的处理:(通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行);(通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\)。
5:使用正则表达式验证字符串是否符合条件:
正则表达式简单介绍
preg_match ( string
^表示开始;$表示结束。
在正则表达式中字母使用\w、而数字使用\d(\D表示非数字)来表示
• + 表示一个或者多个
• * 表示0个或者多个
• ? 表示有或者没有
• {n} 表示具体几位
• {m,n} 表示大于m个,小于n个
使用或条件可以用来匹配字符串,如果仅仅是单个的字母或者字符,则可以使用范围表示
使用[]可以表示一个字符的取值范围
‘/[a0.]/’可以匹配包含了a或者0或者.的任意字符串
另外,正则表达式还可以使用-来表示一组范围
• [a-z] 表示小写的26个字母中的任意一个
• [A-Z] 表示一个大写字母
• [0-9] 表示一位十进制数
- PHP表单使用实例
- 21. PHP 表单验证 - 完成表单实例
- php完整表单验证实例
- PHP经典实例读书笔记--表单
- php用户注册页面使用js进行表单验证具体实例
- php表单发送到myadmin实例
- PHP基础篇-表单完整实例
- PHP表单实例(简单例子)
- php术语和使用表单
- 结合 PHP 使用 HTML 表单
- 使用 PHP 验证表单数据
- PHP 学习笔记(二):表单:表单处理,表单验证,表单实例
- PHP+memcached使用实例
- php Snoopy使用实例
- memcache使用实例|PHP
- php soap 使用实例
- php flock 使用实例
- php flock 使用实例
- Android 系统在程序中设置以太网的DHCP 和静态IP
- tomcat7的日志类型切换到log4j
- 数据库中的内连接、自然连接、外连接
- 关于mysql中设置编码的重要性
- Android Studio:Failed to load the LayoutLib
- PHP表单使用实例
- Java中List遍历中删除元素需要注意
- 关于ListView中item动态刷新下载进…
- 浅谈Google推出的SwipeRefreshLayo…
- 探究微信朋友圈,图片点击效果
- Android:学习AIDL,这一篇文章就够了(上)
- 类似微信的即时通讯的第三方SDK
- apk重新签名打包,安装失败问题
- java后台发起上传文件的post请求(http和https)