为何拿不到 URL 上所传的变数的值??
帮忙看一下下面的程式:
// file1: form.html
<html>
<form name="form1" method="post" action = "test.php">
<input type="text" id = "abc" value = "1000">
<input type="summit">
</html>
// file2 : test.php
<?php
echo $abc; // 我的电脑在这里 echo 出来是空的
?>
请问这是哪里出了问题? 是不是与 server 设定有关 ?
推荐阅读
处理表单
php 一个很有用的特点体现在它处理 php 表单的方式。您需要理解的非常重要的原理,是表单的任何元素都在您的 php 脚本中自动生效。请参阅本手册“php 之外的变量”以获取关于在 php 中使用表单的详细信息及范例。以下是 html 表单的范例:
例子 2-6. 一个简单的 html表单
<form action="action.php" method="post">
your name: <input type="text" name="name" />
your age: <input type="text" name="age" />
<input type="submit">
</form>
该表单中并没有什么特殊的地方,其中没有使用任何特殊的标识符。当用户填写了该表单并点击了提交按钮,页面 action.php 将被调用。在该文件中,您可以加入如下内容:
例子 2-7. 打印来自表单的数据
hi <?php echo $_post["name"]; ?>.
you are <?php echo $_post["age"]; ?> years old.
该脚本的输出可能是: hi joe.
you are 22 years old.
该脚本进行的工作应该已经很明显了,这儿并没有其它更复杂的内容。php 将自动为您设置 $_post["name"] 和 $_post["age"] 变量。在这之前我们使用了自动全局变量 $_server,现在我们引入了自动全局变量 $_post,它包含了所有的 post 数据。请注意我们的表单提交数据的方法。如果我们能使用了 get 方法,那么表单中的信息将被储存到自动全局变量 $_get 中。如果您并不关心请求数据的来源,您也可以用自动全局变量 $_request,它包含了所有 get、post、cookie 和 file 的数据。请参阅 import_request_variables() 函数。
1:
$abc=$http_post_vars[abc];
2:
php.ini
register_globals = on
3:
在页面最前
// allow script to work with registerglobals off
if ( function_exists(ini_get) ) {
$onoff = ini_get(register_globals);
} else {
$onoff = get_cfg_var(register_globals);
}
if ($onoff != 1) {
@extract($http_server_vars, extr_skip);
@extract($http_cookie_vars, extr_skip);
@extract($http_post_files, extr_skip);
@extract($http_post_vars, extr_skip);
@extract($http_get_vars, extr_skip);
@extract($http_env_vars, extr_skip);
}


讨论区