CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

表单传递$name和$_POST['name']的区别

楼主longxin123(龙的心)2005-08-01 17:47:16 在 Web 开发 / PHP 提问

如题,为什么我在linux环境下前着就不行呢,php   4.2  
  而在windows就可以,说说两者的区别吧 问题点数:20、回复次数:11Top

1 楼longxin123(龙的心)回复于 2005-08-01 18:42:15 得分 0

怎么没人顶呀  
  Top

2 楼apol(出来混,早晚是要还的!)回复于 2005-08-01 19:00:07 得分 2

在PHP4里,global设置默认是off,那你用post方法传递变量的时候,直接用$就取不到,必须用$_POST['name']  
   
  PHP3里是on   ,所以可以随便用。Top

3 楼longxin123(龙的心)回复于 2005-08-01 19:16:36 得分 0

那他们有什么区别呢Top

4 楼gzty(【风逍遥】123笨小孩天天快乐)回复于 2005-08-02 00:01:08 得分 2

打开的话没什么区别  
  但是建议关闭后用$_POST好点  
  Top

5 楼fyxw(7级乱射)回复于 2005-08-02 08:35:30 得分 1

global如果是off那不仅是post,其他的get、session等等都不能直接用$取,养成好习惯$_POST方式取怎么都不会错!Top

6 楼heiyeshuwu(黑夜路人)回复于 2005-08-02 10:17:40 得分 10

呵呵,这个算是我学习PHP的时候碰到比较郁闷的问题,也是比较经典的问题。  
   
  global_register   这个选项是在php.ini里面设置的,如果该选项为on的话,那么就是说我们通过get或者post的变量就自动是全局变量,就能够直接访问,比如:   test.php?id=1&name=heiyeluren,那么我们在程序里就能够直接引用变量id和变量name了,post变量也是一样。  
  如果global_register为off的情况下,那么我们通过get或者post的变量就无法直接引用,因为不是全局变量,而且把变量存进了一个数组里,比如get过来的变量:test.php?id=1&name=heiyeluren,那么变量就存储进了一个叫做$_GET的数组里,那么我们要引用id这个变量的话,就必须使用   $_GET[id]来引用了,因为id已经是$_GET这个数组里面的一个元素了,如果要引用post的变量,就使用$_POST来引用。  
   
  php3里面php.ini中register_global默认的值是on,也就是说默认就是打开全局变量的,就能够直接引用变量。php4以后的php.ini里面的register_global是off,就是关闭了全局变量,那么你要引用的时候就必须使用$_GET和$_POST数组来引用,如果你是直接引用的话,那么就会出错了。  
   
  如果你的代码是全局变量的,那么你可以更改php.ini中的register_global   =   on来恢复全局变量注册来解决你的问题。  
   
  另外,你肯定想知道为什么要有这么一个选项,搞的这么复杂,其实是为了安全。更详细的知识可以去搜索一下。  
   
  Top

7 楼heiyeshuwu(黑夜路人)回复于 2005-08-02 10:18:50 得分 1

php真是有点复杂,这个小问题能讲这么多,呵呵,也许是我表达能力不行。   -_-#Top

8 楼mysqlaping(处女主任的兄弟)回复于 2005-08-02 12:30:59 得分 1

建议先将传递同变量名的值先清空  
  such   as  
  <?php  
  $id="";  
  $name="";  
  $id=$_POST['id'];  
  $name=$_POST['id'];  
   
  ?>Top

9 楼mysqlaping(处女主任的兄弟)回复于 2005-08-02 12:31:32 得分 1

更正$name=$_POST['name'];  
  Top

10 楼longxin123(龙的心)回复于 2005-08-03 16:44:30 得分 0

对于大家的讨论我受益匪浅,谢谢大家。Top

11 楼hucool(鱼淼)回复于 2005-08-03 17:11:15 得分 2

说到底还是为了安全,其实直接取变量和$_POST['var']   是一样的!只不过后者更安全罢了!Top

相关问题

  • 表单 method="post" method="get" 的区别.
  • 如何将表单post的数据传递到弹出窗口中呀?
  • 如何通过post方式,传递form表单中的复选框值
  • 表单form的action中的post与get是何意义,有什么区别!???
  • 表单与表单之间的数据传递?(在线)
  • js问题,如何传递表单名,及表单里的值?
  • 三个表单参数的传递
  • 将值传递到表单的问题??????
  • 表单传递时,request不响应.
  • get或post表单时变量怎么也传递不过去,请众位高手帮忙释疑

关键词

  • php
  • 变量
  • 引用
  • 全局
  • 数组
  • post
  • 区别
  • 默认
  • global
  • register

得分解答快速导航

  • 帖主:longxin123
  • apol
  • gzty
  • fyxw
  • heiyeshuwu
  • heiyeshuwu
  • mysqlaping
  • mysqlaping
  • hucool

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo