php页面传值多种方法 php如何获取页面间传值

发布时间:2020-07-03编辑:脚本学堂
有关php页面传值的几种方法,以及获取php页面间传值的方法,php4以后获取传值的方法,使用extract函数,以及dedecms中获取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实例 www.jb200.com)在旧版本的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);
}