一、超全局变量:
除了有全局变量的特点外,可以无须声明,直接使用。
全局变量:
//全局变量
$a = 23;
function test() {
global $a;//使用到全局$a
$a = 12;
}
test();
echo $a."<br/>";
超全局变量:
//超全局变量
echo "<pre>";
echo print_r($_SERVER);
echo "</pre>";
二、php提供了九种超全局数组的,可以更方便快捷的写出程序:
1、$_GET:
通过URL参数传递给当前脚本的变量的数组。
基本用法:
(1)客户机(浏览器)通过超链接传送信息给服务器;(默认get)
(2)客户机(浏览器)通过表单传递信息给服务器-->推荐表单数据使用POST提交。
超链接页面:
<?php
//对中文url编码
$str = urlencode("长沙你好");
echo "<a href='GET.php?city=".$str."&name=lizzy'>传送数据</a>";
?>
GET页面正常接收数据:
<?php
echo "<pre>";
echo print_r($_GET);
echo "</pre>";
echo "--".$_GET['city'];
?>
_GET也可以接收表单以get方式提交数据。
使用细节:
(1)判断是否收到值:
if (empty($_GET['city'])) {
echo "没有收到city";
} else {
echo "有city:".$_GET['city'];
}
(2)$_GET使用陷阱,绝对不能启用php.ini文件中的register_globals = off 需要关闭,否则小心sql注入。
2、$_POST:
通过http post方式提交的数据,会被封装到$_POST 超全局数组中。有些数据传输必须post,比如传文件。。。(表单建议post安全)
界面代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
</head>
<h1>用户注册</h1>
<form action="POST.php" method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="text" name="password"/><br/>
性别:<input type="radio" name="sex" value="female" /> 女 <input type="radio" name="sex" value="man"/> 男<br/>
你的爱好:
<input type="checkbox" name="hobby[]" value="唱歌">唱歌
<input type="checkbox" name="hobby[]" value="跳舞">跳舞
<input type="checkbox" name="hobby[]" value="游泳">游泳
<input type="checkbox" name="hobby[]" value="健身">健身<br/>
你的所在地:
<select name="city">
<option value="changsha">长沙</option>
<option value="beijing">北京</option>
<option value="shenzhen">深圳</option>
</select><br/>
个人介绍:
<textarea rows="10" name="introduce" cols="30">
</textarea><br/>
选择图片:
<input type="file" name="myphoto"><br/>
<input type="submit" value="提交"/>
</form>
</html>
接收数据代码:
<?php
//接收
echo "<pre>";
echo print_r($_POST);
echo "</pre>";
$name = $_POST['username'];
$pwd = $_POST['password'];
$hobbies = $_POST['hobby'];
echo "个人信息如下:<br/>";
echo "用户名:".$name.";密码:".$pwd.";";
// print_r($hobbies);
echo "<br/>该人的爱好:";
foreach ($hobbies as $key => $value) {
echo "<br/>$key=$value";
}
$city = $_POST['city'];
echo "<br/>你的所在地是:".$city;
echo "<br/>个人介绍如下:";
$intro = $_POST['introduce'];
echo "<br/>$intro";
$photo = $_POST['myphoto'];
echo "<br/>所选照片是:".$photo;
?>
get与post数据区分:
get数据已经主要是:
(1)<a></a> 超链接默认是get提交;
(2)header("Location:ok.php?aa=lizzy");这样的方式跳转的时候也是以get方式提交给ok.php。
post和get区别:
(1)安全性:post>get
(2)数据传输大小:[浏览器控制的]post>get
(3)保存到收藏夹:get比较方便。
3、$_REQUEST:
$_REQUEST中可以包含$_GET/$_POST/$_COOKIE这些数组的信息。
4、$_SERVER:
$_SERVER主要包含了http请求行和消息头的信息,同时还有服务器自己的一些信息,比如:DOCUMENT_ROOT、SCRIPT__FILENAME...
5、$_ENV:
该全局数组可以获取环境变量。 在php5.3中默认禁用,可以在php.ini中启用;variables_order = "EGPCS";
6、$_FILE;
7、$_COOKIE:
可以用来在多个页面共享一些信息,cookie是被HTTP协议支持的,浏览器在向服务器请求一个页面时,服务器返回HTTP报文+数据,浏览器会解析从服务器接收的HTTP报文,从而做相应的操作。
8、$_SESSION:
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
9、$GLOBALS:
一个包含了全部变量的全局组合数组,变量的名字就是数组的键,同时一个自定义的全局变量也会自动被$_GLOBALS管理。
网友评论