如何重定向用户,如果一个链接属于某些Catid


How to redirect user if a linkid belong to certain Catid

我写了这个脚本,但是没有重定向,那么问题是什么呢请尽快帮助我

<?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