一、HTTP GET变量($_GET):通过URL提交的变量,或表单使用“GET”方法生成的变量,都会以数组的形式保存在$_GET 变量中。如:
postValue.php中:
<a href="preDefineVar.php?week=周四">通过GET方式传值</a>
preDefineVar.php中接收:
//if($_GET) var_dump($_GET);
if(isset($_GET["week"])) echo "接收GET方式传递过来的数据:{$_GET['week']}\n";
二、HTTP POST变量($_POST):单使用“POST”方法生成的变量,都会以数组的形式保存在$_POST 变量中。如:
postValue.php中:
<form name="postForm" action="preDefineVar.php" method="post">
用户名:<input type="text" name="username" value="" />
<input type="submit" name="btn" value="提 交" />
preDefineVar.php中接收:
if($_POST and array_key_exists("username",$_POST)) echo "接收POST方式传递过来的数据:{$_POST['username']}\n";
三、HTTP Cookies变量($_COOKIE):使用PHP的COOKIE函数或其他程序产生的COOKIE值,都保存在“$_COOKIE”数组中。
1、COOKIE简介
COOKIE是用户浏览网站时,网站脚本程序存放在用户电脑上的一个文本文件,COOKIE通常只能存放在指定的目录,其内容是用户访问网站时的私有信息,这些信息采用标准格式记录。当用户下一次访问网站时,网站的脚本文件就可以读取这些信息,并给用户提供个性化的浏览服务。
与COOKIE相对应的是SESSION,SESSION也可以记录用户的私有信息,但是其信息主体是存放在服务器上。
2、COOKIE文件存储位置
Cookie文件一般存储在C盘下的Cookie文件夹或Temporary Internet Files文件夹下,可以在C盘下搜索这两个文件夹找到。
或者通过“工具 - Internet选项 - 浏览历史记录”,点击设置,可以看到具体的位置。如图:
我的电脑是WIN8系统,WIN8系统下存储在:C:\Users\(用户名)\AppData\Local\Microsoft\Windows\Temporary Internet Files\
其他操作系统的存储位置,可以通过上述方法找到。
3、使用函数创建COOKIE
当服务器脚本运行时,要想在客户机上创建一个COOKIE,可以使用setcookie()和setrawcookie()函数。setcookie()函数有7个参数,下面通过演示来说明这些参数的作用,如:
//设置一个COOKIE,其值为空
setcookie("c1");
//设置一个COOKIE,其值为 this is cookie
setcookie("c2","this is cookie");
//设置一个COOKIE,设置其作用时间为1个小时。设置作用时间后,才会在客户电脑上生成Cookie文件。不设置作用时间的情况,作用原理类似Sesssion
setcookie("c3","一个小时后失效",time()+3600);
//设置一个COOKIE,使其作用域是全站
setcookie("c4","cookie的path参数",time()+3600,"/");
//设置一个COOKIE,使其只能在某个文件目录下使用
setcookie("c5","cookie的path参数",time()+3600,"/html/");
//设置一个COOKIE,使其只能用于某个网站
setcookie("c6","cookie的domain参数",time()+3600,"/","www.xxx.com");
//设置一个COOKIE,使其可以在某个网站的二级域名网站上都可使用
setcookie("c7","cookie的domain参数",time()+3600,"/",".xxx.com");
//设置一个COOKIE,使其值只能使用https方式传输
setcookie("c8","cookie的secure参数",time()+3600,"/","",1);
//设置一个COOKIE,使其只能用于HTTP方式
setcookie("c9","cookie的httponly参数",time()+3600,"/","",0,1);
//设置一个COOKIE,允许其他脚本语言访问.
setcookie("c10","cookie的httponly参数",time()+3600,"/","",0,0);
//使用setrawcookie()函数设置一个COOKIE
setrawcookie("c11","这是setrawcookie()函数设置的COOKIE");
foreach($_COOKIE as $key=>$value){
echo "$key=>$value<br>";
}
注:如果在实际应用中,安全性要求不高的情况下,可以使用setrawcookie()函数设置cookie,setcookie和setrawcookie()函数的使用方法是一样的,只是产生的cookie值有差异。
注意:为防止出现错误提示信息,在页面最上面添加代码<?php ob_start();?>。具体原理和用法参看我的另一篇文章(待整理发出来)
注意:c5、c6、c7都只能在其指定的条件下才能创建或删除成功。如:c5的创建、使用和删除都必须在“\html\”这个目录下的文件中执行代码,才能成功。
4、使用数组的方式添加cookie,如:
//使用数组方法添加COOKIE
$_COOKIE["c12"] = "这是使用数组单元方式添加的COOKIE";
5、使用COOKIE,使用方法与访问数组的方法是一样的。如:
//使用不同方法设置COOKIE
setcookie("name","小王");
setrawcookie("sex","男");
$_COOKIE["age"] = 18;
//使用遍历数组方式访问所有COOKIE变量
foreach($_COOKIE as $key=>$value){
echo "$key=>$value<br>";
}
echo "在双引号内使用键名访问COOKIE值:";
echo "姓名:$_COOKIE[name],性别:$_COOKIE[sex],年龄:{$_COOKIE['age']}";
echo "<br>使用.组成字符串:";
echo "姓名:".$_COOKIE["name"].",性别:".$_COOKIE["sex"].",年龄:".$_COOKIE["age"];
6、删除COOKIE
setCookie("name","",time()-1); //将cookie的过期时间设置到当前时间之前