我写了这个脚本,但是没有重定向,那么问题是什么呢请尽快帮助我
<?php
include('config.php');
$number = intval($_POST['catid']);
$query = mysql_query("SELECT * FROM sound_link WHERE linkid =$linkid");
$check = $rows["catid"];
if ($check = 3)
{
echo '<B>..You will go to audio.php page.....................';
echo "<META HTTP-EQUIV='refresh' CONTENT='0; URL=AUDIO.php?linkid=$linkid'>";
echo mysql_error();
}else{
echo '.... You will stay text.php page';
}
?>
<php include 'text.php' ;?>
,我问我是否想使用头函数而不是元刷新
请帮忙找出我在代码中犯的错误
谢谢
首先,我看不到$linkid
变量设置在你的脚本,你有一个错误在if ($check = 3)
行。你刚刚把$check变量定义为3。改变行与if ($check == 3)
和你在哪里设置$行变量?
要使重定向工作,最好的方法是使用HTTP重定向,这意味着您必须重新定义HTTP头。
您可以在这里获得更多信息:http://php.net/manual/en/function.header.php还要注意的是,为了使header函数正常工作,你应该在输出任何html代码给用户之前进行重定向,所以,这必须发生在任何"echo"或php结束标签?>后面跟着任何html内容之前。
您也不应该在此之后输出任何内容,这意味着您应该执行以下操作:
header('Location: http://www.example.com/');
exit; // this makes sure your script execution ends here
你的问题不够清楚,但如果我理解,重定向不是你唯一的问题,你在SQL查询中使用$linkid变量而不首先定义它。
你的代码片段也有一个潜在的SQL注入缺陷,你应该在用SQL查询插入变量之前阅读它。Mysql_real_escape_string可能会有所帮助,请在将代码投入生产之前阅读它:http://php.net/manual/en/function.mysql-real-escape-string.php