LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 944|回复: 5

php和表单的问题,很长时间未解决了。

[复制链接]
发表于 2003-4-12 17:01:50 | 显示全部楼层 |阅读模式
我做了一个简单的测试,想将PHP和表单联系起来,test.htm和test.PHP文件如下

。。。。。。test.htm。。。。。。。。。。。。。。

<html>
<head>
<title>输入数据的表单</title>
</head>
<body>
<form action=test.php method=post>
<table border=0>
<tr><td>姓名:</td><td><input type=text size=20 name=name></td></tr>
<tr><td>兴趣:</td><td><input type=text size=20 name=hobby></td></tr>
<tr><td><input type=submit value=提交></td><td><input type=reset  value=重写></td></tr>
</table>
</form>
</body>
</html>


。。。。。。test.php。。。。。。。。。。。。。。。。。。。。。。。。。。。。
<html>
<title>输入数据</title>
<?
        $姓名 = $name;
        $兴趣 = $hobby;
        echo $姓名.",你喜欢".$兴趣."。";
?>
</html>

当我在地址栏输入test.htm文件后,在姓名栏及兴趣栏分别输入一些数据,当执行递交时,出来的画面只显示:”,你喜欢“。我输入的姓名和兴趣变量名未能传递过来。这是为什么?谢谢!
发表于 2003-4-12 17:26:32 | 显示全部楼层
你的php版本是不是在4.1.0版本以上啊?
在那以后的版本对系统的安全性做了一定的提高,修改了系统中一些默认参数的设置,
你这个问题的解决办法有两个
其一:
修改php的默认配置文件php.ini
参数名称:register_globals 默认设置 在4.1.0以前版本为on ,以后为off
只要修改为on就可以直接接受以你的网页的形式接受传递过来的变量
其二:
可以用下面的方式接受传递过来的变量
php-4.3.0以后版本用
$name = $_GET["name"]  ,$xingqu = $_GET["xingqu"]
php-4.3.0以前版本用
$name = HTTP_GET_VARS["name"] ,$xingqu = HTTP_GET_VARS["xingqu"]
 楼主| 发表于 2003-4-14 11:10:25 | 显示全部楼层

php和表单

不行啊,我试过了,我的APACHE是2。0。43,PHP 是4.3.0,问题依旧。
发表于 2003-4-14 11:47:55 | 显示全部楼层
看看这样:。。。。。。test.php。。。。。。。。。。。。。。。。。。。。。。。。。。。。
<html>
<title>输入数据</title>
<?
echo $name.",你喜欢".$hobby."。";
?>
</html>
得到什么结果?
发表于 2003-4-14 12:32:43 | 显示全部楼层
变量名好像不可以用中文名的吧
 楼主| 发表于 2003-4-14 21:26:58 | 显示全部楼层

谢谢各位,我已用其他方法解决了问题。不过。。。。。。

各位说的方法我也试过,都不行。最后,我用了以下的方法:
test.htm文件中 有这么一段<form action=test.php method=post>
在test.php文件中我就这样修改:

$姓名 = $HTTP_POST_VARS["name"];
$兴趣 = $HTTP_POST_VARS["hobby"];
其他不变,如果将POST改成GET也不行。因为test.htm文件中用的是method=post.
如果test.htm中用的是 method=get,则test.php中也可以用$HTTP_GET_VARS。具体道理我也不清楚,但这样测试结果是对的。哪位可以讲个道道。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表