我写了这个脚本,但没有重定向,所以问题是什么 请尽快帮助我
<?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' ;?>
我问我是否要使用标头功能而不是元刷新
请小心翼翼地发现我在代码中犯的错误
感谢
答案 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