`

PHP页面传值的6种获取方法

    博客分类:
  • php
阅读更多
初学PHP,以前使用ASP没有这些传值的这么多说法,更不存在PHP版本兼容的问题,但是PHP中遇到了。在网上有不少朋友遇到过PHP传值的问题,大都是因为看了老PHP版本的教程但用着新版本的PHP引起的,这里icech边学边记录,整理了几种PHP传值的方法,就作为学习笔记了,也希望新学PHP的朋友少走弯路。

1、PHP4以后获取传值的方法

    一般在页面中传值常见的是POST、GET和COOKIE几种,所以下面我也主要介绍这几种。PHP4以后都采用的是$_POST、$_GET等数组来获取网页传值。在PHP3.0及以下版本都是用的是$HTTP_POST_VARS、$HTTP_GET_VARS等数组,具体代码如下
echo $_POST['dopost'];
?>

< form action="weste_net.php" method="post" name='form1' id="form1">
< input type="text" name="dopost" value="hello weste.net!" />
< input type="submit" name="weste" value="提交" />
< /form>

2、旧版本PHP3以前的获取传值方法

    上面说过了,可以使用$HTTP_POST_VARS、$HTTP_GET_VARS、$HTTP_COOKIE_VARS这些数组读取。在旧版本的PHP中,还可以使用如$dopost的方法直接获取传值,这种方法比较简洁,在后面的几种获取网页传值的方法中,其实icech都是围绕着如何能使用$dopost来获取网页传值的。

3、修改PHP.ini文件的配置

    还有一个问题是为什么PHP3和PHP4及其以后会不兼容呢?其实有一个很重要的原因是,在PHP4以后,PHP.ini文件中的register_globals被默认设置为Off了。所以造成以前使用$dopost这种方法直接获取网页传值不能使用了。

    简单的方法来查看一下register_globals的值
echo 'register_globals = ' . ini_get('register_globals');
?>
如果register_globals=Off,显示register_globals = 或者 register_globals = 0
如果register_globals=On,显示register_globals = 1

    手动修改register_globals为On,提交的表单中如果包含一个名为“dopost”的变量,那么在PHP中就可以使用$dopost来获取该变量。但是如果使用的是虚拟主机,想要修改php.ini文件还是比较困难的。这里只是提供一个方法。

4、使用import_request_variables函数

    import_request_variables函数的作用就是将GET、POST、Cookie变量导入到全局作用域中,如果你禁止了register_globals,但又想用到一些全局变量,则此函数很有用。
语法:bool import_request_variables(string $types[, string $prefix])
第一个参数可以为g、p或者c,就是GET、POST、COOKIE变量的头一个字母,意思也很明确;
第二个参数是导入后的变量前缀,可以随意写;
简单的例子:
import_request_variables("p","p_");
echo $p_dopost;
?>
HTML部分参照方法1的,获取的是值为dopost输入框变量。

5、使用extract函数

PHP extract() 函数从数组中把变量导入到当前的符号表中。对于数组中的每个元素,键名用于变量名,键值用于变量值。第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。
语法:extract(array,extract_rules,prefix)
使用方法:
if(!empty($_POST)) extract($_POST);
echo $dopost;
?>
这种方法很简单吧?也很实用。

6、dedecms里面使用的方法

在dede中,事先判断了register_globals的值,如果是Off就调用下面的程序,如果是On,那么就可以直接用了。具体的代码如下,放在了common.inc.php文件中

//检查和注册外部提交的变量
foreach($_REQUEST as $_k=>$_v)
{
if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) && !isset($_COOKIE[$_k]) )
{
   exit('Request var not allow!');
}
}

function _RunMagicQuotes(&$svar)
{
if(!get_magic_quotes_gpc())
{
   if( is_array($svar) )
   {
    foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v);
   }
   else
   {
    $svar = addslashes($svar);
   }
}
return $svar;
}

foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);
}

把以上代码放到一个公用的php页面中,后面获取网页传值的时候只需要使用就可以了。

来自: http://hi.baidu.com/ihelpsoft/blog/item/601417deb1c9fe53ccbf1a10.html
分享到:
评论

相关推荐

    php页面传值php页面传值

    php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值php页面传值

    JS、PHP页面相互传值

    JS、PHP页面相互传值,案例详细源码,解决页面间相互传值问题。

    js 垮域传值

    最近搞一个需求有关js跨域弹窗传值,问题是这样的:有两个网站分别为www.b.com、www.a.com 在B网站B.htm嵌入A网站的A.htm页面,在A.htm页面要从弹出的AA.htm页面获取一个值(产生跨域问题,AA.htm页面要弹出到B网站)...

    php 页面之间传值的三种方法实例代码

    网站开发过程中,我们经常需要在不同页面之间进行值的传递。本文章向大家讲解PHP页面之间传值的三种方法。需要的码农可以参考一下

    页面会话及传值的异同

    ASP.NET、VB.NET及PHP 会话及页面传值的异同

    PHP传值到不同页面的三种常见方式及php和html之间传值问题

    接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大家一起讨论。  一. POST传值 post传值是用于html的&lt;form&gt;表单跳转的方法,很...

    js与php利用FormData相互传值

    JsPhp交互 JsPhp传值 FormData 相互传值 附使用说明

    jquery的get()方法ajax传值php实例

    jquery的get()方法ajax传值php实例,由HTM文件AJAX服务器PHP文件,返回JSON数据并读取。写的简单实例。

    PHP与Web页面交互 -PHP获取表单信息.ppt

    * * PHP与Web页面交互 -----PHP 获取表单信息1 课程内容 获取文本框的值 获取文件域的值 获取复选框的值 PHP获取表单信息 在Web开发过程中,表单提交是数据传输过程中很重要的一部分,作为以PHP为后台开发语言的...

    PHP获取访客IP地址的六种方法

    PHP获取访客IP地址的六种方法 PHP获取访客IP地址的六种方法

    【小程序】 PHP解密用户数据获取unionid的方法 【已经封装到一个类中】

    PHP微信小程序之获取并解密用户数据获取openId和unionId。wxBizDataCrypt.php 和 pkcs7Encoder.php 和 errorCode.php封装到了一个文件中!生成sessionKey 的接口方法(https://api.weixin.qq.com/sns/jscode2session...

    js获取url传值的方法

    本文实例讲述了js获取url传值的方法。分享给大家供大家参考,具体如下: js获取url参数值: index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&…… 静态html文件js读取url参数 根据获取html的参数值控制...

    php基础—变量的传值方式

    下面我们就来 说一下变量的传值方式: 值传递又称拷贝传值,就是将一个变量的值复制一个给另外一个变量。此时二个变量的值相同,但是此时的二个变量又是互相独立的存在,操作其中任何一个变量,另外一个变量都不会受...

    php函数传值的引用传递注意事项分析

    本文实例讲述了php函数传值的引用传递注意事项。分享给大家供大家参考,具体如下: Strict standards: Only variables should be passed by reference 网上查到资料有这么一句话: 在php5.3以上版本会出这个问题,...

    php传值方式和ajax的验证功能

    给大家介绍了php前台传值到后台进行验证的三种方式,以及ajax的验证功能,需要的朋友一起学习吧

    php获取URL中带#号等特殊符号参数的解决方法

    主要介绍了php获取URL中带#号等特殊符号参数的解决方法,本文使用JS中的escape函数编码后传递解决这个问题,需要的朋友可以参考下

    传值 PHP面试宝典

    传智播客PHP面试宝典mysql+php+apache+linux+nginx+redis+memcache

    C++POST传值类

    该类实现C++与SAE上面的PHP页面进行交互,C++POST传值到远程PHP页面并获得返回值同时写入文件操作

    php获取参数的几种方法总结

    php获取参数的几种方法总结 $value = $_POST[“value”];//取得post中的  $value=$_REQUEST[“value”];//取得get或者post中的参数(哪个有就取得哪个)  $value=$_GET[“value”];//取得get中的参数 您可能感兴趣...

Global site tag (gtag.js) - Google Analytics