提交表单后PHP不能获取提交内容

Fri 27 May 2005

提交表单后PHP不能获取提交内容

作者: 月光

问题:网页上提交表单之后,PHP为什么不能获取提交的内容?然而在老版本的PHP上运行却正常。

新版的PHP已经废弃了原来的表单内容处理方式,即不再把提交的表单的内容直接复制到一个同名变量中。

解决办法有四个:

1. 修改php.ini,查找 register_globals,将其值修改为On。这样就可以像原来一样 除非你要使用一段旧的代码而考虑到兼容性问题,否则不建议使用该方法。

例如,提交的表单中包括一个名为\"username\"的变量,那么在php中就可以直接使用\$username来访问该变量。

2. 使用\$HTTP_GET_VARS、\$HTTP_POST_VARS数组来访问,例如写成\$HTTP_POST_VARS[\"username\"]的形式。不过该方法也不建议采用。

3. (推荐)使用 \$_POST、\$_GET等数组来访问

例如写成\$_POST[\"username\"]的形式。建议采用这种方法。

4. (推荐)使用 import_request_variables函数。该函数将提交内容导入到变量中。 可以兼容以前的PHP程序。

例如 import_request_variables(\"gp\",\"rvar_\"); 第一个参数可以选择g,p,c,分别表示导入 GET,POST,COOKIE变量; 第二个参数为导入后的变量前缀。 执行上面的语句后即可使用\$rvar_username 来访问提交的 username变量。 使用import_request_variables(\"gp\",\"\");

Tips: 第三项中提到的预设变量有: \$GLOBALS, \$_SERVER, \$_GET, \$_POST, \$_COOKIE, \$_FILES, \$_ENV, \$_REQUEST, \$_SESSION等。详细信息请参考PHP手册。

相关文章

Category: 月光博客2005