如果linkid属于某个Catid,如何重定向用户

时间:2011-12-22 04:47:04

标签: php javascript jquery redirect header

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

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

我问我是否要使用标头功能而不是元刷新

请小心翼翼地发现我在代码中犯的错误

感谢

2 个答案:

答案 0 :(得分:1)

首先,我无法在您的脚本上看到$linkid变量设置,并且您在if ($check = 3)行上出错了。你刚才将$ check变量定义为3。用if ($check == 3)改变那一行,你在哪里设置$ rows变量?

答案 1 :(得分:1)

要使重定向生效,最好的方法是通过HTTP重定向,这意味着您必须重新定义HTTP标头。

您可以在此处获取更多信息:http://php.net/manual/en/function.header.php 还要注意,对于头函数的工作没有问题,你应该在向用户输出任何html代码之前进行重定向,因此,这必须在任何“echo”或php结束标记之前发生吗?&gt;其次是任何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