$ _Post在$ _Get时没有检索数据

时间:2015-12-24 10:08:32

标签: php

我是Php的新手所以我基本上不太了解 刚开始从一本书和php和mysql学习 做同样的书,但我的代码不会获取数据,如果我使用Post方法,但如果我使用Get方法确实有效。这本书使用过帖子这里有点困惑:/ 这是html部分:

<!DOCTYPE html>

<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="processorder.php" method="POST">
    <table border="0">
        <tr bgcolor="#cccccc">
            <td width="150">Item</td>
            <td width="15">Quantity</td>
        </tr>
        <tr>
            <td>Tires</td>
            <td align="center"><input type="text" name="tireqty" size="3"
                                      maxlength="3" /></td>
        </tr>
        <tr>
            <td>Oil</td>
            <td align="center"><input type="text" name="oilqty" size="3"
                                      maxlength="3" /></td>
        </tr>
        <tr>
            <td>Spark Plugs</td>
            <td align="center"><input type="text" name="sparkqty" size="3"
                                      maxlength="3" /></td>
        </tr>
        <tr>
            <td colspan="2" align="center"><input type="submit" value="SUBMIT ORDER" /></td>
        </tr>
    </table>
</form>
</body>
</html>

PHP代码就是这个

<html>
<?php
// create short variable names
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
?>
<head>
    <title>Bob’s Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob’s Auto Parts</h1>
<h2>Order Results</h2>

<?php
echo "<p>Order processed at " .date('H:i, jS F Y')."</p>";
echo '<p>Your order is as follows: </p>';
echo $tireqty.' tires<br />';
echo $oilqty.' bottles of oil<br />';
echo $sparkqty.' spark plugs<br />';
?>

</body>
</html>

如果我使用_GEt方法,则会显示此变量的值,但使用post方法则不会检索任何内容。

3 个答案:

答案 0 :(得分:1)

如果您使用form属性method肯定是POST,那么您将在php文件中使用$_POST获取数据可能存在缓存问题或代替{{ 1}}您可以使用它$_POST但我建议您先清除缓存,然后再次使用$_REQUEST

此外,我不认为这是代码问题,而是apache或php的配置问题。你应该只使用$_POST更安全!

由于

答案 1 :(得分:1)

嗯,你确定发帖不起作用,请查看发布方法是否包含数据。

  

的var_dump($ _ POST);和var_dump($ _ REQUEST);

如果您没有在帖子中找到任何内容,那么如果您的请求是通过get方法提交,那么它将在请求中。

如果它显示在post中输入数组的数组,那么你的post方法正常工作,问题出在你的文件中,由于某些安全问题/错误的路径,你的文件无法打开,或者可能是由于文件权限。所以检查并告诉我。

答案 2 :(得分:0)

<?php
    if (isset($_POST['tireqty'])) {
        $tireqty = $_POST['tireqty'];
        $oilqty = $_POST['oilqty'];
        $sparkqty = $_POST['sparkqty'];
    }
    ?>