100 讲 预定义超全局数组①- 原理分析 $_GET 更新时间 :2013 年 04 月 21 日 11 时 42 分 来源 : 现在我们做项目串知识点 . 先给大家讲解预定义超全局变量 PHP 中预定义超全局变量 ① 什么是全局变量 ?
php
$a=23;// 全局变量 , 因为该变量在整个作用域(在这
100
讲 预定义超全局数组①-
原理分析 $_GET
更新时间
:2013
年
04
月
21
日
11
时
42
分
来源
:
现在我们做项目串知识点
.
先给大家讲解预定义超全局变量
PHP
中预定义超全局变量
①
什么是全局变量
$a=23;//
全局变量
,
因为该变量在整个作用域(在这个
php
文件中),都是可见
function test(){//
如果希望使用到全局
$a;global $a;$a=45;}test();echo $a;?>
②
什么是超全局变量
超全局变量除了有全局变量的特点外,可以无须申明,直接使用
.
快速入门
//
超全局变量
$_SERVER['hsp']="
韩顺平
";echo ""
提供超全局数组的原因是为了让程序员更方便快捷的写出
PHP
程序
.
③
PHP
供提供了九种
1. $_GET2. $_POST3. $_REQUEST4. $_SERVER5. $_ENV6. $_FILE7. $_COOKIE8. $_SESSION9. $GLOBALS
现在一个一个讲解
1. $_GET
以
$_GET
原理来分析数据的来龙去脉
...
说明原理图
:
3
分钟前
上传
下载附件
(60.59 KB)
$_GET
实际使用
.
客户机
(
浏览器
)
通过超链接传送信息给服务器
案例
1test.php
页面
//urlencode
编码
echo "
传送数据
";?>
面试题
:
请问如何处理超链接提交数据的中文乱码问题
?1.
对于高版本的
ie
浏览器
,
无需处理
2.
对应
5.5
和
6.0 ie
需要进行
urlencode()
编码处理
3.
尽量使用字母和数字
.a.php
页面
echo "";//
如果希望指定取出某个数据,则可以通过下标名
echo $_GET['name'];?>
看看
ie5.5
和
ie 6
的中文奇数乱码
.
解决方法
1.
给奇数中文加一个全角空格,然后到服务器接收是,去掉两头的空行
trim()
解决方法
2:
使用
urlencode
和
urldecode
函数
在
test.php
页面
//
这句话是对中文
url
编码
.$str=urlencode("
北京好
");echo "
传送数据
";?>//
在
a.php
页面中,正常接收。
echo "";//
如果希望指定取出某个数据,则可以通过下标名
,
如果
php
版本低,可能看到是中文,需要使用
urldecode()
来解密
echo "--".$_GET['city'];?>_GET
也可以接收表单以
get
方式提交数据
”a.php”method=”get”>//....特别说明如何提交表单数据建议使用POST,不要使用GET使用细节:如果判断是否收到值a. phpif(empty($_GET['city'])){echo "没有收到";}else{echo "有city";echo$_GET['city'];}//这个方法可以,参看,建议使用emptyif(!isset($_GET['city'])){echo "没有收到hello";}else{echo "有city";echo$_GET['city'];}绝对不要启用register_globals需要register_globals = Off
预定义超全局数组②-$_POST $_REQUEST
$_POST
立即学习
“
PHP免费学习笔记(深入)
”;
描述 : 通过Http POST方式提交的数据,会被封装到$_POST超全局数组中.
举例: 接收表单信息:
代码:
1
分钟前
上传
下载附件
(26.82 KB)
代码:
register1.php页面
用户注册
用户名:
密码
性别:
女
男
你喜欢什么:
唱歌
跳舞
游泳
骑马
你的所在地是:
北京
天津
南京
个人介绍 :
你选择图片
**regiseter2.php***
//看看如何接收
echo "";
//关心爱好
$name=$_POST['username'];
$pwd=$_POST['passwd'];
//如何接收checkbox提交的数据
$hobbies=$_POST['hobby'];
echo "个人信息如下
";
echo "$name--$pwd";
//print_r($hobbies);
echo "该人的爱好";
foreach($hobbies as $key=>$val){
echo"$key=$val";
}
echo "
你的所在地是";
$city=$_POST['city'];
echo $city;
echo "
个人介绍如下";
$intro=$_POST['intro'];
echo "$intro";
echo "
查看调查情况
"
?>
这里还有一个下拉框的演示
10min:
你编写生活幸福度的调查表,然后把调查的信息
,存入到数据库
.,看看能否获取数据,显示给用户看.
get数据提交主要是
默认是get提交
//当这样的方式跳转的时候,也是以get方式提交给ok.php
header(“Location: ok.php?aaa=xiaoming”);
?>
post和get区别请参看ppt
① 安全性 post>get
② 数据传输大小 [浏览器]post>get
③ 保存到收藏夹 get比较方便.
$_REQUST
定义: $_REQUST 中可以包括$_GET/$POST/$_COOKIE 数组,的信息.
快速入门:
这里就很好理解,看一个案例 :
echo "";
//如何取出某个值
//$_REQUEST既可以接收get 请求数据,也可以接收post请求、cookie..
//所以这个变量,比较不可以信,不建议使用. $_GET $_POST
echo $_REQUEST['aa'];
//如果不确定get/post
if($_SERVER['http_method']=="post"){
$echo $_POST['名字'];
}else if($_SERVER['http_method']=="get"){
//用 _GET接收.
}
?>
注意事项:
1. 不要经常使用$_REQUEST,
2. 如果不确定_GET/POST
你接收数据时候,可以这样
if($_SERVER['REQUEST_METHOD’]=="POST"){
$echo $_POST['名字'];
}else if($_SERVER[’ REQUEST_METHOD’]=="GET"){
//用 _GET接收.
}
预定义超全局数组③-$_SERVER $_ENV $GLOBALS
$_ENV
该全局数组可以获取环境变量,在
php5.3
中默认禁用,但是你可以启动
,
在
php.ini
文件中启用
.
variables_order="EGPCS"
特别说明一把,在开发和生产环境,不要启用
.
$_FILE/ $_COOKIE /$_SESSION
后面讲
$GLOBALS
包含了全部变量的全局组合数组。变量的名字就是数组的键
[
手册
]
同时一个自定义的全局变量,也会自动的被
$_GLOBALS
管理
案例
:
echo "aaaa";
echo "";
?>
当你定义一个全局变量,该变量也会被
$GLOBALS
管理
$a=900;
echo “”
?>
案例说明
:
";
echo print_r($_SERVER);
echo "";
echo print_r($_GET);
echo "";
echo print_r($_GET);
echo "";
echo print_r($_POST);
echo "
";
echo print_r($_REQUEST);
echo "
";
echo print_r($GLOBALS);
echo "
”;
print_r($GLOBALS);
echo “
