初学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
分享到:
相关推荐
以下将详细介绍五种跨页面传值的基本方法。 1. **URL参数传递**:这是最简单的方法,通过在链接的URL后面添加问号(?)和参数对来实现。例如,`http://example.com/page2.html?name=John&age=30`。在页面2中,可以...
POST 方法是另一种常用的页面传值方法。它通过在请求体中传递数据。在 PHP 中,可以使用 $_POST 超全局变量来获取 POST 请求中的参数。 例如,在 A 页中,我们可以使用以下代码来传递参数: ```php ...
在网页开发中,JavaScript(JS)和PHP是两种...以上就是JS和PHP页面间常见的传值方法。实际应用中,开发者需要根据具体需求、安全性和性能考虑选择合适的方法。同时,要注意跨域限制、数据加密以及用户隐私保护等问题。
最近搞一个需求有关js跨域弹窗传值,问题是这样的:有两个网站分别为www.b.com、www.a.com 在B网站B.htm嵌入A网站的A.htm页面,在A.htm页面要从弹出的AA.htm页面获取一个值(产生跨域问题,AA.htm页面要弹出到B网站)...
本文将详细介绍三种常见的PHP页面间传值方法:POST、GET和SESSION。理解并掌握这些方法对于高效地构建动态网站至关重要。 一、POST传值 POST传值是通过HTML `<form>` 表单实现的,它允许在表单提交时将数据发送到...
在网页开发中,静态页面间传值是一种常见的需求,特别是在多页应用中,用户可能需要在不同的HTML页面之间传递信息,比如导航、购物车状态等。本实例将深入探讨如何在不依赖服务器端处理或者使用JavaScript框架的情况...
网页传值是Web开发中的基本操作,用于在不同的页面间传递数据,使用户的状态得以保持。本主题将深入探讨两种常见的方法:Cookie和Session。理解并掌握这两种技术对于构建动态和交互性强的网站至关重要。 首先,我们...
在Web开发中,页面传值的方式主要包括GET和POST两种,此外还有Cookie和Application等其他方式。 **1. GET与POST** - **GET**:适用于传输较短的数据,通常用于查询操作。 - URL中显示参数,如`...
本文将探讨PHP向不同页面传值的三种常见方法:POST、GET和SESSION,并结合HTML的使用来阐述PHP如何接收这些传递的值。 一、POST传值 POST传值主要应用于HTML的`<form>`表单提交,它将表单中的数据以键值对的形式...
在现代Web开发中,JavaScript(JS)和PHP是两种常用的技术,它们分别负责前端和后端的数据处理。本文将详细探讨如何使用`FormData`对象在JS和PHP之间进行数据交互,以及实现相互传值的过程。 `FormData`是HTML5引入...
总结来说,静态页面间的传值涉及到各种浏览器提供的API和技术,选择哪种方法取决于数据量、安全性、兼容性以及特定场景的需求。开发者应根据实际情况权衡这些因素,选择最适合的方法。在实际项目中,结合使用多种...
在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种不刷新整个页面即可实现局部数据更新的技术。通过AJAX,我们可以向服务器异步发送请求,获取数据并动态更新页面,从而提高用户体验。本实例提供了一个...
在Web开发中,jQuery是...这种方式在不刷新页面的情况下更新内容,提升用户体验,广泛应用于动态网页和单页应用程序(SPA)中。同时,通过JSON作为数据交换格式,我们可以轻松地在JavaScript和PHP之间共享结构化数据。
在目标页面`target_page.html`中,可以通过JavaScript或者服务器端语言(如PHP、Python等)解析URL获取这些参数。例如,使用JavaScript的`window.location.search`可以获取查询字符串,并通过`split()`和`forEach()`...
本文实例讲述了js获取url传值的方法。分享给大家供大家参考,具体如下: js获取url参数值: index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&…… 静态html文件js读取url参数 根据获取html的参数值控制...
本文将详细讲解PHP前台传值到后台的三种主要方式,以及利用AJAX进行实时验证的功能。 1. POST和GET方式 POST和GET是HTTP协议中的两种基本请求方法,常用于前端向后台传递数据。POST方式常用于提交表单,因为其可以...
当文件上传完成后,我们需要获取文件路径或URL,并将其传递回主页面。 在Thickbox内容页(例如`your_content.html`),可以有以下代码: ```html 上传 $(document).ready(function() { $('#uploadButton')....
本项目中,"html向flash里面传值"是指通过JavaScript与ActionScript(AS)的通信,实现从HTML页面向Flash传递数据。这种技术常用于动态加载内容、实现交互功能或展示进度条效果。 在描述中提到的“预加载读条”是一...
3. **PHP 获取页面的值** PHP 通过 `$_REQUEST` 超全局数组来获取表单提交的数据。在服务器端,你可以在 PHP 文件中使用以下代码获取 `username` 的值: ```php <?php $name = $_REQUEST["username"]; echo $...
PHP是一种广泛应用于服务器端的脚本语言,尤其适合处理Web应用的数据和逻辑。在这个项目中,PHP作为后端服务器,负责处理来自jQuery的Ajax请求,可能包括从数据库中读取数据、计算分析数据或者根据用户输入生成新的...