




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
6.2PHP表单、输入及验证陈学平2PHP表单和用户输入01输入验证02目录012PHP表单和用户输入2PHP表单和用户输入PHP中的$_GET和$_POST变量用于检索表单中的信息,比如用户输入。2.1PHP表单处理有一点很重要的事情值得注意,当处理HTML表单时,PHP能把来自HTML页面中的表单元素自动变成可供PHP脚本使用。实例6-1PHP表单前端页面实例代码如下:下面的实例包含了一个HTML表单,带有两个输入框和一个提交按钮。form.html文件代码:<html><head><metacharset="utf-8"><title>菜鸟教程</title></head>2.1PHP表单处理<body><formaction="welcome.php"method="post">名字:<inputtype="text"name="fname">年龄:<inputtype="text"name="age"><inputtype="submit"value="提交"></form></body></html>当用户填写完上面的表单并单击提交按钮时,表单的数据会被送往名为"welcome.php"的PHP文件:2.1PHP表单处理welcome.php文件代码:欢迎<?phpecho$_POST["fname"];?>!<br>你的年龄是<?phpecho$_POST["age"];?>岁。2.1PHP表单处理欢迎陈学平!你的年龄是50岁。图6-1测试结果2.2PHP获取下拉菜单的数据PHP下拉菜单单选以下实例设置了下拉菜单三个选项,表单使用GET方式获取数据,action属性值为空表示提交到当前脚本,通过select的name属性获取下拉菜单的值:实例7实现PHP下拉菜单单选实例代码如下:php_form_select.php文件代码:<?php$q=isset($_GET['q'])?htmlspecialchars($_GET['q']):'';if($q)2.2PHP获取下拉菜单的数据PHP下拉菜单单选{if($q=='RUNOOB'){echo'菜鸟教程<br>';}elseif($q=='GOOGLE'){echo'Google搜索<br>';}elseif($q=='TAOBAO'){echo'淘宝<br>';}}2.2PHP获取下拉菜单的数据PHP下拉菜单单选else{?><formaction=""method="get"><selectname="q"><optionvalue="">选择一个站点:</option><optionvalue="RUNOOB">Runoob</option><optionvalue="GOOGLE">Google</option><optionvalue="TAOBAO">Taobao</option></select><inputtype="submit"value="提交"></form><?php}?>显示结果如图6-2所示2.2PHP获取下拉菜单的数据PHP下拉菜单单选图6-2测试结果2.2PHP获取下拉菜单的数据PHP下拉菜单多选如果下拉菜单是多选的(multiple="multiple"),可以通过将设置selectname="q[]"以数组的方式获取,以下使用POST方式提交,代码如下所示:php_form_select_mul.php文件代码:实例8实现PHP下拉菜单多选实例代码如下:<?php$q=isset($_POST['q'])?$_POST['q']:'';if(is_array($q)){2.2PHP获取下拉菜单的数据PHP下拉菜单多选$sites=array('RUNOOB'=>'菜鸟教程:','GOOGLE'=>'Google搜索:','TAOBAO'=>'淘宝:',);foreach($qas$val){//PHP_EOL为常量,用于换行echo$sites[$val].PHP_EOL;}}else2.2PHP获取下拉菜单的数据PHP下拉菜单多选{?><formaction=""method="post"><selectmultiple="multiple"name="q[]"><optionvalue="">选择一个站点:</option><optionvalue="RUNOOB">Runoob</option><optionvalue="GOOGLE">Google</option><optionvalue="TAOBAO">Taobao</option></select><inputtype="submit"value="提交">2.2PHP获取下拉菜单的数据PHP下拉菜单多选</form><?php}?>输出结果如图6-3所示。图6-3输出结果2.2PHP获取下拉菜单的数据PHP单选按钮PHP单选按钮表单中name属性的值是一致的,value值是不同的,代码如下所示:php_form_radio.php文件代码:2.2PHP获取下拉菜单的数据实例9实现PHP单选按钮实例代码如下:<?php$q=isset($_GET['q'])?htmlspecialchars($_GET['q']):'';if($q){if($q=='RUNOOB'){echo'菜鸟教程<br>';}elseif($q=='GOOGLE'){echo'Google搜索<br>';2.2PHP获取下拉菜单的数据实例9实现PHP单选按钮}elseif($q=='TAOBAO'){echo'淘宝<br>';}}else{?><formaction=""method="get"><inputtype="radio"name="q"value="RUNOOB"/>Runoob2.2PHP获取下拉菜单的数据实例9实现PHP单选按钮<inputtype="radio"name="q"value="GOOGLE"/>Google<inputtype="radio"name="q"value="TAOBAO"/>Taobao<inputtype="submit"value="提交"></form><?php}?>输出结果如图6-4所示2.2PHP获取下拉菜单的数据实例9实现PHP单选按钮图6-4单选按钮2.2PHP获取下拉菜单的数据PHP的checkbox复选框PHPcheckbox复选框可以选择多个值:php_form_select_checkbox.php文件代码:实例10实现PHP复选框实例代码如下:<?Php$q=isset($_POST['q'])?$_POST['q']:'';if(is_array($q)){$sites=array('RUNOOB'=>'菜鸟教程:','GOOGLE'=>'Google搜索:','TAOBAO'=>'淘宝:',);实例10实现PHP复选框foreach($qas$val){//PHP_EOL为常量,用于换行echo$sites[$val].PHP_EOL;}}else{?><formaction=""method="post"><inputtype="checkbox"name="q[]"value="RUNOOB">Runoob<br><inputtype="checkbox"name="q[]"value="GOOGLE">Google<br>实例10实现PHP复选框<inputtype="checkbox"name="q[]"value="TAOBAO">Taobao<br><inputtype="submit"value="提交"></form><?php}?>输出结果如图6-5所示。图6-5复选按钮2.3表单验证在任何时候对用户输入进行验证(通过客户端脚本),可以让浏览器验证速度更快,并且可以减轻服务器的负载。如果用户输入需要插入数据库,应该使用服务器验证。在服务器验证表单的一种好的方式是,把表单传给它自己,而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。本节将介绍如何使用PHP验证客户端提交的表单数据。2.3表单验证PHP表单验证在处理PHP表单时需要考虑安全性。为了防止黑客及垃圾信息需要对表单进行数据安全验证。本节介绍的HTML表单中包含以下输入字段:必须与可选文本字段,单选按钮,及提交按钮:显示效果如图6-6所示。图6-6显示效果该页面的代码如下:2.3表单验证实例11PHP表单验证实例代码如下:<!DOCTYPE
HTML>
<html><head><meta
charset="utf-8"><title>菜鸟教程</title><style>.error
{color:
#FF0000;}</style></head><body>
2.3表单验证实例11PHP表单验证<body><?php//定义变量并默认设置为空值$nameErr=$emailErr=$genderErr=$websiteErr="";$name=$email=$gender=$comment=$website="";if($_SERVER["REQUEST_METHOD"]=="POST"){2.3表单验证实例11PHP表单验证<?php//
定义变量并默认设置为空值$nameErr
=
$emailErr
=
$genderErr
=
$websiteErr
=
"";$name
=
=
$gender
=
$comment
=
$website
=
"";if
($_SERVER["REQUEST_METHOD"]
==
"POST"){
if
(empty($_POST["name"]))
{
$nameErr
=
"名字是必需的";
}
else
{
$name
=
test_input($_POST["name"]);
//
检测名字是否只包含字母跟空格
if
(!preg_match("/^[a-zA-Z
]*$/",$name))
{
$nameErr
=
"只允许字母和空格";
}
}2.3表单验证实例11PHP表单验证
if
(empty($_POST["email"]))
{
$emailErr
=
"邮箱是必需的";
}
else
{
=
test_input($_POST["email"]);
//
检测邮箱是否合法
if
(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
{
$emailErr
=
"非法邮箱格式";
}
}
2.3表单验证实例11PHP表单验证
if
(empty($_POST["website"]))
{
$website
=
"";
}
else
{
$website
=
test_input($_POST["website"]);
//
检测
URL
地址是否合法
if
(!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
{
$websiteErr
=
"非法的
URL
的地址";
}
}2.3表单验证实例11PHP表单验证
if
(empty($_POST["comment"]))
{
$comment
=
"";
}
else
{
$comment
=
test_input($_POST["comment"]);
}
if
(empty($_POST["gender"]))
{
$genderErr
=
"性别是必需的";
}
else
{
$gender
=
test_input($_POST["gender"]);
}}2.3表单验证实例11PHP表单验证function
test_input($data){
$data
=
trim($data);
$data
=
stripslashes($data);
$data
=
htmlspecialchars($data);
return
$data;}?>2.3表单验证实例11PHP表单验证<h2>PHP
表单验证实例</h2><p><span
class="error">*
必需字段。</span></p><form
method="post"
action="<?php
echo
htmlspecialchars($_SERVER["PHP_SELF"]);?>">
名字:
<input
type="text"
name="name"
value="<?php
echo
$name;?>">
<span
class="error">*
<?php
echo
$nameErr;?></span>
<br><br>
E-mail:
<input
type="text"
name="email"
value="<?php
echo
$email;?>">
<span
class="error">*
<?php
echo
$emailErr;?></span>
<br><br>网址:
<input
type="text"
name="website"
value="<?php
echo
$website;?>">
<span
class="error"><?php
echo
$websiteErr;?></span>
<br><br>备注:
<textarea
name="comment"
rows="5"
cols="40"><?php
echo
$comment;?></textarea>
<br><br>
性别:
<input
type="radio"
name="gender"
<?php
if
(isset($gender)
&&
$gender=="female")
echo
"checked";?>
value="female">女
<input
type="radio"
name="gender"
<?php
if
(isset($gender)
&&
$gender=="male")
echo
"checked";?>
value="male">男
<span
class="error">*
<?php
echo
$genderErr;?></span>
<br><br>
<input
type="submit"
name="submit"
value="Submit">
</form>2.3表单验证实例11PHP表单验证<?php
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业抵押贷款合同样本参考
- 项目经理劳动合同范文
- 足球俱乐部球员转会合同协议范本新
- 移动通信设备区域分销合同范本
- 道路硬化改造提升施工合同书
- 股权转让合同典范解析
- 跨区域旅游合作:组团社与地接社合同范本
- 塑料挤出机节能改造技术考核试卷
- 市场营销与电子支付方式考核试卷
- 厨房用品消费者满意度调查考核试卷
- 中国农村居民储蓄行为研究共3篇
- 华为鸿蒙深度研究
- 心理咨询师考试题库及答案
- 弟子规42+用人物须明求+教案
- GB/T 7307-200155°非密封管螺纹
- GB/T 32972-2016钢铁企业轧钢加热炉节能设计技术规范
- 年平均雷暴日2023
- 《育儿百科》松田道雄
- 穴位注射操作流程图
- 学校水电安装工程报价单
- 消毒供应中心火灾应急预案演练记录
评论
0/150
提交评论