我在一个网站上工作,它有HTML和PHP,当我在dreamweaver中运行PHP脚本时,它执行HTML代码,而不是PHP。它没有访问以下代码
中给出的其他HTML页面 </p>
<form method="post" action="" >
<p>Enter your source and destination.</p>
<p>
From:</p>
<select name="from">
<option value="Islamabad">Islamabad</option>
<option value="Lahore">Lahore</option>
<option value="murree">Murree</option>
<option value="Muzaffarabad">Muzaffarabad</option>
</select>
<p>
To:</p>
<select name="To">
<option value="Islamabad">Islamabad</option>
<option value="Lahore">Lahore</option>
<option value="murree">Murree</option>
<option value="Muzaffarabad">Muzaffarabad</option>
</select>
<input type="submit" value="search" />
</form>
</form> </table>
<?php
if(isset($_POST['from']) and isset($_POST['To'])) {
$from = $_POST['from'] ;
$to = $_POST['To'] ;
$table = array($from, $to);
switch ($table) {
case array ("Islamabad", "Lahore") :
header("Location: flights.html");
break;
case array ("Islamabad", "Murree") :
header("Location: hotels.html");
break;
case array ("Islamabad", "Muzaffarabad") :
header("Location: videos.html");
break;
//.....
//......
default:
echo "Your choice is nor valid !!";
}
}
?>
这么多问题!
来自PHP在线手册
请记住,header()必须在任何实际输出之前调用通过普通的HTML标记、文件中的空白行或PHP发送。使用include或require来读取代码是一个非常常见的错误,函数,或其他文件访问函数,并具有空格或空在header()被调用之前输出的行。同样的问题在使用单个PHP/HTML文件时存在。
所以基本上,如果你想让浏览器使用header()
加载一个新页面,你必须在任何其他数据(HTML)发送到浏览器之前执行header()
。在任何header()
之后加上exit;
也是一个好主意。
在你的情况下,这可能不会太难,因为在我看来,这段代码应该放在脚本的顶部,而不是在中间。