超级奇怪的问题-表单提交无效(100分)

  • 主题发起人 主题发起人 donyad
  • 开始时间 开始时间
D

donyad

Unregistered / Unconfirmed
GUEST, unregistred user!
在小弟的机器上,自己写的表单就是不能传值
我用PHP
看我的简单测试
ttt.htm
<html>
<head>
<title>表单测试</title>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form action="ttt.php">
<input type="checkbox" name="checkbox1" value="1">
<input type="checkbox" name="checkbox2" value="2">
<input type="radio" name="rb" value="555">
<input type="radio" name="rb" value="111" checked>
<input type="hidden" name='temp' value="123">
<input type="submit" name="Submit" value="提交">
</form>
</body>
</html>
ttt.php
<?
if(empty($checkbox1))
echo "CheckBox1 is empty";
else
{
echo "<br>CheckBox1 : ";
echo $checkbox1;
}
if(empty($checkbox1))
echo "<br>CheckBox2 is empty";
else
{
echo "<br>CheckBox2 : ";
echo $checkbox2;
}
if(empty($rb))
echo "<br>RadioButton is empty";
else
{
echo "<br>RadioButton : ";
echo $rb;
}
if(empty($ttt))
echo "<br>Temp is empty";
else
{
echo "<br>Temp : ";
echo $temp;
}
?>
本地WebServer原来用Omni,后来以为是Server问题换用IIS(XP-Pro中)
仍然不行,所有变量传过来都是empty
尽管用get方式传在ttt.php的地址栏能看到rb=111这样的字样
即使使用http://127.0.0.1/ttt.php?rb=111,temp=123
这样的方式也不能传
但是同样用PHP和表单的PhpMyAdmin在本地运行却一切正常
难道是小弟的表单写得有问题?
恳请高手指教!不胜感激!
 
IIS 支持 PHP吗?
 
我这里的测试结果
CheckBox1 is empty
CheckBox2 is empty
RadioButton is empty
Temp is empty
刚学PHP,就只能帮到这了!
 
ligia
绝对支持,但要做好多设置,包括下一堆PHP的DLL
但我这里用的是LINUX+APACHE
 
呵呵,问题在于新版本的PHP关闭了自动变量
在PHP 4.2中,新安装的PHP中的register_globals选项默认为关闭,因此EGPCS值(EGPCS是Environment、Get、Post、Cookies、Server的缩写 -- 这是PHP中外部变量来源的全部范围)不会被作为全局变量来创建。当然,这个选项还可以通过手工来开启,但是PHP的开发者推荐你将其关闭。要贯彻他们的意图,你需要使用其它的方法来获取这些值。
从PHP 4.1开始,EGPCS值就可以从一组指定的数组中获得:
$_ENV -- 包含系统环境变量
$_GET -- 包含查询字符串中的变量,以及提交方法为GET的表单中的变量
$_POST -- 包含提交方式为POST的表单中的变量
$_COOKIE -- 包含所有cookie变量
$_SERVER -- 包含服务器变量,例如HTTP_USER_AGENT
$_REQUEST -- 包含$_GET、$_POST和$_COOKIE的全部内容
$_SESSION -- 包含所有已注册的session变量
在PHP 4.1之前,当开发者关闭register_globals选项(这也被考虑为提高PHP性能的一种方法)后,必须使用诸如$HTTP_GET_VARS这样的令人讨厌的名字来获取这些变量。这些新的变量名不仅仅短,而且它们还有其他优点。
 
你要是不想改程序就
把php.ini中改为
register_globals = On
PhpMyAdmin是做了版本检测的[:)]
 
谢谢大家了
特别是gxcooo
顺便在这里回ligia一下
IIS装PHP也很简单的
需要的.dll PHP包中就含有的,如果你想架的话看看资料就好
 
后退
顶部