表单中的变量不会传递给php

时间:2012-11-17 11:23:20

标签: php

我有这个表单,我试图用一些用户输入的变量并将它们传递给calculate.php进行计数并显示结果。

calculate.html

<HTML>
<HEAD>
<TITLE>Calculation Form</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="calculate.php">
<P>Value 1: <INPUT TYPE="text" NAME="vall" SIZE=10></P>
<P>Value 2: <INPUT TYPE="text" NAME="val2" SIZE=10></P>

<P>Calculation:<br>
<INPUT TYPE="radio" NAME="calc" VALUE="add"> add<br>
<INPUT TYPE="radio" NAME="calc" VALUE="subtract"> subtract<br>
<INPUT TYPE="radio" NAME="calc" VALUE="multiply"> multiply<br>
<INPUT TYPE="radio" NAME="calc" VALUE="divide"> divide</P>


<P><INPUT TYPE="submit" NAME="submit" VALUE="Calculate"></P>

</BODY>
</HTML>

calculate.php:

        <?
if (($_POST["vall"] == "") || ($_POST["val2"] == "") || ($_POST["calc"] =="")) {
    header("Location: http://localhost/calculate.html");
exit;
}

if ($_POST["calc"] == "add") {
   $result = $_POST["vall"] + $_POST["val2"];
} else if ($_POST["calc"] == "subtract") {
   $result = $_POST["vall"] - $_POST["val2"];
} else if ($_POST["calc"] == "multiply") {
   $result = $_POST["vall"] * $_POST["val2"];
} else if ($_POST["calc"] == "divide") {
   $result = $_POST["vall"] / $_POST["val2"];
}

?>

<HTML>
<HEAD>
<TITLE>Calculation Result</TITLE>
</HEAD>
<BODY>

<P>The result of the calculation is: <? echo $result; ?></P>

</BODY>
</HTML>

任何人都可以说我的错误在哪里,因为我只得到:计算的结果是:

4 个答案:

答案 0 :(得分:1)

您在所有"中的数组索引中错过了$_POST[],因此您需要添加""

<?
if (($_POST["vall"] == "") || ($_POST["val2"] == "") || ($_POST["calc"] =="")) {
    header("Location: http://localhost/calculate.html");
exit;
}

if ($_POST["calc"] == "add") {
   $result = $ POST[vall] + $_POST[val2];

} else if ($_POST["calc"] == "subtract") {
   $result = $_POST["vall"] - $_POST["val2"];
} else if ($_POST["calc"] == "multiply") {
   $result = $_POST["vall"] * $_POST["val2"];
} else if ($_POST["calc"] == "divide") {
   $result = $_POST["vall"] / $_POST["val2"];
}

?>

答案 1 :(得分:1)

这些$_POST[vall]必须为$_POST['vall']。字符串文字vall是关键。

答案 2 :(得分:0)

你在calculate.php的第8行有一个错误:

$result = $ POST[vall] + $_POST[val2];

应该是:

$result = $_POST["vall"] + $_POST["val2"];

并考虑以前的答案

答案 3 :(得分:0)

可能只是在这里输入错误,但是 - 除了其他所有人说的话,你忘了关闭 </form>标签

<INPUT TYPE="radio" NAME="calc" VALUE="divide"> divide</P>

<P><INPUT TYPE="submit" NAME="submit" VALUE="Calculate"></P>

</FORM> <!-- MISSING -->

</BODY>

我还会在处理前检查POST请求:

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
   // do your stuff
}