[问题]PHP表单处理出错

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
a17gogo
帖子: 5
注册时间: 2006-10-22 22:11

[问题]PHP表单处理出错

#1

帖子 a17gogo » 2006-10-26 12:20

我的代码如下:
<html>
<head>
<title>计算器</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body bgcolor="#FFFFFF" text="#000000">

<?php

var_dump($_POST);

if($_POST['out']=="确定"){
if($_POST['op']=="加"){
$ans=$num1+$num2;
print "........加" .$num2."所得结果: ".$ans;
}
elseif($_POST['op']=="减"){
$ans=$num1-$num2;
print "........减" .$num2."所得结果: ".$ans;
}
}
echo $_SERVER["PHP_SELF"];
?>

<form action='index.php' method= "POST">
操作数1:
<input type=text name="num1" value="<?echo $ans;?>">
<br>
<input type=radio name="op" value="加" checked>

<input type=radio name="op" value="减" checked>
减<br>
操作数2:
<input type=text name="num2">
<input type=submit name="out" value="确定">
<input type=reset name="out" value="清除">
</form>
</body>
</html>
结果显示:
array(0) { } /index.php
操作数1:
加 减
操作数2: 确定 清除


但是,当输入数据,点击确定后,显示
Not Found

The requested URL /index.php was not found on this server.
我已经将register_globals设置为 On.
请指教!
a17gogo
帖子: 5
注册时间: 2006-10-22 22:11

#2

帖子 a17gogo » 2006-11-04 9:24

我把“确定”、“清除”改成英语就好了
不想放弃
帖子: 44
注册时间: 2005-05-11 21:44

#3

帖子 不想放弃 » 2006-11-04 10:08

1.确定指向文件正确
2.type=""要用引号,如type="text"。你如果说不用也可以,我承认。但这是错误的用法。
3.$num1应该是$_POST['num1'],$num1同理。
4. bgcolor="#FFFFFF" text="#000000"是不建议使用的,应在CSS定义。而且如果不强制使用白底黑字,你这两个也有点多余。

首次修改后代码

代码: 全选

<html>
  <head>
    <title>计算器</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  </head>
  <body>
    <?php
      var_dump($_POST);
      $num1=intval($_POST['num1']);
      $num2=intval($_POST['num2']);

      if($_POST['out']=="确定"){
        if($_POST['op']=="加"){
          $ans=$num1+$num2;
          print $num1."加".$num2."所得结果: ".$ans;
        }
        elseif($_POST['op']=="减"){
          $ans=$num1-$num2;
          print $num1."减".$num2."所得结果: ".$ans;
        }
      }
      echo $_SERVER["PHP_SELF"];
    ?>

    <form action='index.php' method= "POST">
      操作数1:
      <input type="text" name="num1" value="<?echo $ans;?>">
      <br>
      <input type="radio" name="op" value="加" checked>
      加
      <input type="radio" name="op" value="减" checked>
      减<br>
      操作数2:
      <input type="text" name="num2">
      <input type="submit" name="out" value="确定">
      <input type="reset" name="out" value="清除">
    </form>
  </body>
</html> 
不想放弃
帖子: 44
注册时间: 2005-05-11 21:44

第二次修改

#4

帖子 不想放弃 » 2006-11-04 10:17

代码: 全选

<html>
  <head>
    <title>Calc</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  </head>
  <body>
    <?php
      $num1=intval($_POST['num1']);
      $num2=intval($_POST['num2']);

      if($_POST['op']=="plus"){
        $ans=$num1+$num2;
        print $num1."+".$num2."=".$ans;
      }
      elseif($_POST['op']=="minus"){
        $ans=$num1-$num2;
        print $num1."-".$num2."=".$ans;
      }
    ?>

    <form action='index.php' method= "POST">
      op1:
      <input type="text" name="num1" value="<?php echo $ans;?>">
      <br>
      <input type="radio" name="op" value="plus" checked>
      plus
      <input type="radio" name="op" value="minus" checked>
      minus<br>
      op2:
      <input type="text" name="num2">
      <input type="submit" value="submit">
      <input type="reset" value="reset">
    </form>
  </body>
</html>
[/code]
a17gogo
帖子: 5
注册时间: 2006-10-22 22:11

#5

帖子 a17gogo » 2006-11-07 22:28

后一个调试通过,可是第一个还是老问题。 :oops:
另外,在我做的“聊天室”中,也遇到了类似的问题:当用户在文本框中发言时,用英语没问题,可汉字又出问题了。
谢谢你了。
头像
ClearSky
帖子: 26
注册时间: 2006-10-11 4:07
来自: New Zealand
联系:

#6

帖子 ClearSky » 2006-11-10 14:36

这个应该是文字再POST之后的编码问题,所以在比对时就出现了错误。
回复