我是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方法则不会检索任何内容。
答案 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'];
}
?>