目录
1、php表单……………..…………………………………………………………………………..3
1、Php表单
Php通过预定义变量$_POST、$_REQUEST、$_GET、$_SERVER、$_COOKIE等来完成客户端与服务器端的通信。
1.1、$_GET:
GET方法提交的数据显示在网址上,$_GET变量是一个包含名称[name]和值[value]的数组,信息传输量小。如:
http://localhost/test/get.php?id=200&name=xiaozhang&age=20
获取一个参数:
echo $_GET[“id”];
获取所有参数:
foreach($_GET as $key=>$value)
echo $key.”---”.$value;
示例:get.php
1.2、$_POST:
POST是一种常用的提交数据的方法,不显示在网址上,$_POST变量是一个包含名称[name]和值[value]的数组,信息传输量大。如:
<from action=“save.php” method=“post”>
姓名:<input name=“username”><input type=“submit” value=“提交”>
</from>
获取一个参数:
echo $_POST[“username”];
获取所有参数:
foreach($_POST as $key=>$value)
echo $key.”---”.$value;
获取表单信息—checkbox
1)、对于一个name一个value的情况,直接用$_POST取出。如$_POST[“username”]。
2)、对于一个name多个value情况,如checkbox,将name后加[],如name=“hobby[]”,取法不变,$_POST[“hobby”],但此值为数组。如:
姓名:<input name="username"><br>
密码:<input name="password"><br>
性别:<input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女
省份:<select name="city">
<option value="">请选择</option>
<option value="哈尔滨">哈尔滨</option>
</select>
爱好:<input type=“checkbox” name=“hobby[]” value=“文学”>文学
<input type=“checkbox” name=“hobby[]” value=“体育”>体育
<input type=“checkbox” name=“hobby[]” value=“书法”>书法
print_r($_POST[“hobby”]); // 得到是一个数组。
示例:form.htm、post.php、mutiform.php
1.3、$_REQUEST:
同时具有$_GET和$_POST的功能,可以取得网址和表单的所有信息。凡是$_GET和$_POST的地方,均可用它代替。
1.4、$_ENV:
主要用来取得系统及环境相关信息。
foreach ($_ENV as $key=>$value)
{
echo $key,"........",$value,"<br>";
}
如:$_ENV[“OS”];
参数:OS 系统类型,
如:Windows_NT
参数:SystemRoot 系统目录
如:C:\WINDOWS
示例:env.php
1.5、$_SERVER:
$_SERVER 是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。数组的实体由 web 服务器创建。$_SERVER[“参数”]中的参数如下:
http://localhost/test/server.php?id=20&name=hello
“PHP_SELF” 取得文件的路径:/test/server.php
“QUERY_STRING” 取得?号之后的参数:id=20&name=hello
“REQUEST_URI” 域名后部分:test/server.php?id=20&name=hello
“REMOTE_ADDR” 正在浏览当前页面用户的 IP 地址。
“DOCUMENT_ROOT” 当前运行脚本所在的文档根目录。E:/web/www
“SERVER_NAME” 当前运行脚本所在服务器主机的名称。
“REQUEST_METHOD” 访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”。"HTTP_REFERER” 链接到当前页面的前一页面的 URL 地址。
“SERVER_ADDR” 当前运行脚本所在的服务器的 IP 地址。
遍历:
foreach ($_SERVER as $key=>$value)
echo $key,"........",$value,"<br>";
示例:server.php
1.6、$_COOKIE:
Cookie通常用来验证或辨别一个用户。Cookie是通过服务器发送到用户计算机中的一个小文件。每次,当相同的计算机通过浏览器请求一个页面时,原先存储的cookie也会发送到服务器。你可以使用PHP来创建和获取cookie的值。
1)、创建Cookie:
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
如:setcookie(“user”, “Liberty”, time()+3600); //名称,值,过期时间。
注:setcookie()必须放在<html>标记之前。
因为setcookie会发送网页头信息给客户端的浏览器,这样浏览器根据这些信息设置本地cookie,而<html>标签是网页正文,所以必须在头信息发送完之后才能发送。
<?php
setcookie("user", "Liberty", time()+3600);
?>
<html>
<body></body>
</html>
2)、获取cookie:
指从客户端浏览器的临时文件中读取。如果客户清空了浏览器的临时文件,cookie将不存在。
获得某一cookie:
如:$_COOKIE[“user”];
获得所有cookie:
print_r($_COOKIE);
注:cookie用来判断用户登陆、身份验证等信息,但它有着一定的安全隐患,因为它的信息是存在客户端的。
示例:cookie.php、setCookie.php、readCookie.php、cookie/autoindex.php
1.7、$_SESSION:
session即会话,一个用户从访问网站到关闭网站这个过程,就是一个会话。多个用户之间,是不会相关干扰的,因为它们是不同会话。
在你将用户信息存入PHP Session之前,你必须先启动Session。
session_start()函数必须写在<html>标签之前。
(或者直接修改php.ini配置文件中的session.auto_start = 1,然后重启服务即可)
如:
<?php
session_start();
?>
<html>
<body>
</body>
</html>
1)、定义:
<?php
session_start();
$_SESSION[‘views’]=2008;
?>
2)、使用:
echo $_SESSION[“views”]; //2008
3)、判断:
isset($_SESSION[“views”]); //判断一个session是否设置
4)、清空:
unset($_SESSION[‘views’];
5)、用途:
权限验证
注:session和cookie的区别:
Session存于服务器端,安全,有时间限制,管理员程序一般用session。
Cookie存于客户端,不安全,无时间限制,论坛一般用cookie。
示例:session/autoindex.php
1.8、$_FILES:
$_FILES["file"]["name"] 客户端的文件名称
$_FILES["file"]["size"] 文件大小(字节)
$_FILES["file"]["tmp_name"]:存储于服务器中的文件副本的名称
$_FILES["file"]["error"]:文件上传时出现的错误代码
FILES["file"]["error"]
//保存
move_uploaded_file($_FILES[“file”][“tmp_name”], “upload/” . $_FILES[“file”][“name”]);
Php上传文件步骤:
1)、设置form表单
enctype=”multipart/form-data”
2)、存到服务器临时目录
$_FILES[“file”][“tmp_name”]
3)、拷贝到指定目录
move_uploaded_file();
上传文件示例:
客户端写法:
<form action=“upload_file.php” method=“post“ enctype=”multipart/form-data”>
<label for=“file”>Filename:</label>
<input type=“file” name=“file” id=“file” /> <br />
<input type=“submit” name=“submit” value=“Submit” />
</form>
服务器端写法:
$bool = ($_FILES[“file”][“type”] == “image/gif” || $_FILES[“file”][“type”] == “image/jpeg”) && ($_FILES[“file”][“size”] < 20000);
if (!$ bool )
{ echo “类型不对,大小不对”;}
if ($_FILES["file"]["error"] > 0){
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: “ . $_FILES[”file“][”tmp_name“] . ”<br />“;
if (file_exists(”upload/“ . $_FILES[”file“][”name“])){
echo $_FILES[”file“][”name“] . ” already exists. “;
}
else{
move_uploaded_file($_FILES[”file“][”tmp_name“],”upload/“ . $_FILES[”file“][”name“]);
echo ”上传成功 " . "upload/" . $_FILES["file"]["name"];
}