我在使用标头功能重定向时遇到问题。代码如下。
<?php
include_once('connectdb.php');
$from= $_POST['select-choice-1'];
$to= $_POST['select-choice-2'];
$date= $_POST['date'];
$time= $_POST['time'];
$no_of_seats= $_POST['passengerno'];
if (isset($_POST['select-choice-1']) && isset($_POST['select-choice-2']) && isset($_POST['date']) &&
isset($_POST['time']) && isset($_POST['passengerno']) && !empty($_POST['select-choice-1']) && !empty($_POST['select-choice-2'])
&& !empty($_POST['date']) && !empty($_POST['time']) && !empty($_POST['passengerno'])) {
$sql=mysql_query("SELECT email,phone FROM driverjourneydetails WHERE jfrom='$from'
AND jto='$to' AND date='$date' AND time='$time' AND no_of_seats_avail='$no_of_seats'");
$rows=mysql_num_rows($sql);
//print_r($_POST);
if($rows>0){
header("location: availableCars.php");
}else{
echo "No available cars on your route";
} }
else echo "Missing fields. Please all the required fields.";
?>
在我的数据库中,有一行匹配意味着header()
func。被调用,但这里是我当前页面上显示的错误,尽管事实上没有标题功能一切正常
注意:未定义的索引:第3行的C:\ wamp \ www \ app \ passengerJourneyDetails.php中的select- choice-1
答案 0 :(得分:0)
在将任何输出发送到浏览器之前,必须对header()
函数进行所有调用(除非您使用输出缓冲)。尝试更改错误报告级别(或实际修复错误本身)。
例如,使用isset()
将有助于您在将来阻止此类通知:
if( isset($_POST['select- choice-1'] )
{
$from = $_POST['select- choice-1'];
}
值得注意的是,您的代码对SQL injection攻击持开放态度。 mysql_*
函数系列现已弃用,不应在生产代码中使用。调查MySQLi或PDO,更具体地说,调查Prepared Statements以避免此类安全漏洞。
答案 1 :(得分:0)
我认为您的表单输入名称未正确标记。
<form action="exampled" method="post">
<input type="text" name="first" placeholder="First Name">
<input type="text" name="last" placeholder="First Name">
<button type="submit" name="submit">signup</button>
</form>
$from= $_POST['first'];
$to= $_POST['last'];