在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递。
Web表单主要用来在网页中发送到服务器。
创建一个表单,再以POST方法提交到数据处理页面check_ok.php
<form name="form1" method="post" action="check_ok.php">
</form>
使用POST方法提交表单
应用POST方法时,只需将<form>表单中的属性method设置成POST即可。POST方法不依赖于URL,不会显示在地址栏。POST方法可以没有限制的传递数据到服务器,所有提交的信息在后
台传输。POST方法比较适合用于发送一个保密的(信用卡号)或者容量较大的数据到服务器。
使用GET方法提交表单
GET方法是<form>表单中method属性的默认方法。使用GET方法提交的表单数据被附加到URL后,并作为URL的一部分发送到服务器端。在URL的地址栏中将会显示"URL+用户传递的参数"
GET方法的传参格式如下:
http://url?name1=value1&name2=value2....
PHP参数传递常用的方法有3种:$_POST[],$_GET[],$_SESSION[].分别用于获取表单,URL与Session变量的值。
$_POST[]全局变量
使用PHP的$_POST[]预定义变量可以获取表单元素的值,格式为:$_POST[name]
获取表单元素<?php
$user=$_POST["user"];
?>
在某些PHP版本中可以直接写$user即可调用表单元素的值,这个php.ini的配置有关系。在php.ini文件中检索道register_glabals=ON/OFF这行代码,如果为ON,就可以直接写出
$user。
$_GET[]全局变量
PHP使用$_GET[]预定义变量获取通过GET方法传过来的值,使用格式为:
$_GET[name]
建立一个表单,设置method属性为GET,添加一个文本框,命名user,获取表单元素
<?php
$user=$_GET["user"]; // 应用$_GET[]全局变量获取表单元素文本框的值
?>
$_SESSION[]变量
使用$_SESSION[]变量可以获取表单元素的值,格式为:
$_SESSION[name]
获取表单元素的代码的格式如下;$user=$_SESSION["user"]
在HTML标记中添加PHP脚本
<?php
include("top.php");// 引用外部文件
?>
对表单元素的value属性进行赋值
<?php
$hidden="xx";
?>
隐藏域的值:<?php type="hidden" name="ID" value="<?php echo $hidden;?>">
在PHP中获取表单数据
获取文本框,密码域,隐藏域,按钮,文本域的值。
获取表单数据,实际上就是获取不同的表单元素的数据,在使用时需要使用name属性来获取相应的value属性值。
添加的所有空间必须定义对应的name属性值。
<?php
if($_POST["submit"]=="登录")
{// 判断提交的按钮名称是否为"登录"
// 使用echo语句输出使用$_POST[]方法获取的用户名和密码
echo"你输入的用户名:".$_POST[user]." ".$_POST[pwd];
}
?>
<pre name="code" class="html"><form action="" method="post" name="form1">
性别:<input name="sex" type="radio" value="1" checked>男
<input name="sex" type="radio" value="0"> 女
</form>
<?php
echo "你选择的性别为:"
echo $_POST["sex"];
?>
获取复选框的值
在<form>表单元素外的任意位置添加PHP标记符
<?php
if($_POST[mrbook]!=null){
echo "你选择的结果是";
for($i = 0;$i < count($_POST[mrbook]);$i++)
echo $_POST[mrbook][$i]." ";
}
?>
在编写PHP语句,通过$_POST[]q全局变量获取下拉列表框的值。
<?php
if($_POST[select]!="")
echo "你选择的主题:<br>";
for($i=0;$i<count($_POST[select];$i++))
echo $_POST[select][$i]." ";
?>
编写PHP语句,通过$_POST[]全局变量获取菜单列表框的值,使用echo语句进行输出。
<?php
if($_POST[submit]=="提交"){
echo "你选择的意见主题为:".$_POST[select];// 输出字符串和菜单列表的值
}
?>
文件域有一个特有的属性accept,用于制定与上传的文件的类型,如果需要限制上传的文件的类型,则可以通过设置该属性完成。
<form name="form1" method="post" action="index.php">
<input type="file" name="file" size="15">
<input type="submit" name="upload" value="上传">
</form>
<?php
echo $_POST[file];// 输出要上传文件的绝对路径
?>
对URL传递的参数进行编码
使用URL参数传递数据,就是在URL地址后面加上适当的参数。URL实体对这些参数进行处理。
http://url?name1=value&name2=value2...
URL传递的参数(也称为查询字符串)
这种方法会将参数暴露,URL编码是一种浏览器用来打包表单输入数据的格式,是对用地址栏传递参数进行的一种编码规则。
在PHP中对查询字符串进行URL编码,可以通过urlencode()函数实现。
string urlencode(string str);
urlencode()函数实现将字符串str进行URL编码。
<a href="index.php?id=<?php echo urlencode("编程词典");?>">PHP编程词典</a>
对URL传递的参数进行解码
对于URL传递的参数直接使用$_GET[]方法即可获取。而对于进行URL加密的查询字符串,则需要通过urlencode()函数对获取后的字符串进行解码。
string urldecode(string str)
urldecode()函数可将URL编码后的str查询字符串进行解码。
<a href="index.php"?id=<?php echo urlencode("编程词典");?>>PHP编程词典</a>
<?php echo "你提交的查询字符串的内容是:"urldecode($_GET[id]);?>