我对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方法,不会检索到任何内容。
发布于 2015-12-25 03:34:18
那么,您确定post不工作,请检查post方法包含数据或不使用。
Var_dump($_POST)和var_dump($_REQUEST);
如果您没有在post中找到任何内容,那么它将被请求,如果是,那么您的请求是通过get方法提交的。
如果它显示数组并输入post,则post方法正在工作,并且您的文件出现问题,而您的文件由于某些安全问题/不正确的路径而无法打开,或者可能是由于文件权限。那就查一查让我知道。
发布于 2015-12-24 02:32:06
如果您使用form
属性method
is POST
,您肯定会在php文件中使用$_POST
获得数据,可能存在缓存问题,或者可以使用$_REQUEST
代替$_POST
,但我建议您先清除缓存,然后再使用$_POST
。
而且,我不认为这是代码问题,而是apache或php的配置问题。而且您应该只使用$_POST
更安全!
谢谢
发布于 2015-12-25 03:57:51
<?php
if (isset($_POST['tireqty'])) {
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
}
?>
https://stackoverflow.com/questions/34451020
复制