大家好,最近刚开始学PHP
看《PHP和MySQL.Web开发(原书第4版)》,在运行第一章的两个小程序时出现
Notice: Undefined index:
不知道为什么呀,下载了源码,对比了,一样的。奇怪。
两个文件内容如下:
orderform.html:<html>
<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>
<!-- ><button align= "center" type= "button">Submit Order</button><-->
</tr>
</table>
</form>
</body>
</html>processorder.php:<?php
// create short variable names
// if(isset($_POST['tireqty']) && isset($_POST['oilqty']) && isset($_POST['sparkqty']))
//{
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
//}
?>
<html>
<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 ";
echo date('H:i, jS F Y');
echo "</p>";
// echo "<p>Order process 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>
我在orderform.html的三个文本框(tireqty,oilqty和sparkqty)里分别输入了 2, 4, 6三个数字后,点 Submit Order按钮,跳转到processorder.php,但是出现错误如题,三个数字不能显示。
请指教!!谢谢!
看《PHP和MySQL.Web开发(原书第4版)》,在运行第一章的两个小程序时出现
Notice: Undefined index:
不知道为什么呀,下载了源码,对比了,一样的。奇怪。
两个文件内容如下:
orderform.html:<html>
<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>
<!-- ><button align= "center" type= "button">Submit Order</button><-->
</tr>
</table>
</form>
</body>
</html>processorder.php:<?php
// create short variable names
// if(isset($_POST['tireqty']) && isset($_POST['oilqty']) && isset($_POST['sparkqty']))
//{
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
//}
?>
<html>
<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 ";
echo date('H:i, jS F Y');
echo "</p>";
// echo "<p>Order process 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>
我在orderform.html的三个文本框(tireqty,oilqty和sparkqty)里分别输入了 2, 4, 6三个数字后,点 Submit Order按钮,跳转到processorder.php,但是出现错误如题,三个数字不能显示。
请指教!!谢谢!
在论坛置顶的常见问题帖子里也有提到解决的方法在_POST变量前做一个 isset($_POST['xxx']) 的判断即可
/* Created on [2012-5-23] Author[Newton] */
print_r($_POST);
#Array ( [tireqty] => 2 [oilqty] => 3 [sparkqty] => 4 )
?>
<html>
<body>
<form action= "test15.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>
<!-- ><button align= "center" type= "button">Submit Order</button><-->
</tr>
</table>
</form>
</body>
</html>result:
不过还是用了dmtnewtons的方法就好了。
在orderform.html里面加了
<?php
print_r($_POST);
?>
可以了。
昨晚试过了。。加了,错误就变成 undefined variable了,就是那三个变量没被赋值。就是if语句是false。
在orderform.html里面加了
<?php
print_r($_POST);
?>
可以了
加了判断后 后续的代码也是一样要进行相同的处理的.print_r($_POST) 能解决问题?别搞笑了,这只是输出这个数组内容而已,有没有这个代码对程序本身的功能都没有任何影响
error_reporting = E_ALL & ~E_NOTICE
<?php
/* Created on [2012-5-23] Author[Newton] */
print_r($_POST);
#Array ( [tireqty] => 2 [oilqty] => 3 [sparkqty] => 4 )
?>
之后,我也不知道为什么呀。奇怪。orderform.html:
<?php
/* Created on [2012-5-23] Author[Newton] */
print_r($_POST);
?><html>
<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>
<!-- ><button align= "center" type= "button">Submit Order</button><-->
</tr>
</table>
</form>
</body>
</html>processorder.php:
<?php
// create short variable names
// if(isset($_POST['tireqty']) && isset($_POST['oilqty']) && isset($_POST['sparkqty']))
//{
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
//}
?>
<html>
<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 ";
echo date('H:i, jS F Y');
echo "</p>";
// echo "<p>Order process 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>
现在在三个文本框里输入后,就可以传递到processorder.php里面了
或@
或php.ini里面加了 ~NOTICE
都不行诶直到加了
<?php
/* Created on [2012-5-23] Author[Newton] */
print_r($_POST);
#Array ( [tireqty] => 2 [oilqty] => 3 [sparkqty] => 4 )
?>
<?php
if(!empty($_POST))
{
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
}
?>
<?php
if(!empty($_POST))
{
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
}
?>
<?php
if(!empty($_POST))
{
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
}
?>