Php 提交到下一页后重定向

Php 提交到下一页后重定向,php,mysql,Php,Mysql,我试图链接两个有问题的php页面。表单提交后,它会检查数据库以存储值,然后必须重定向到下一页。 但我被困在header()函数中。它没有重定向到下一页。我哪里做错了 $q1= "SELECT * FROM user_lang WHERE lang='$lang' AND q_id='1'"; $r1=mysqli_query($connection, $q1) or die(mysqli_error($connection)); $row1=mysqli_fetch_assoc($r1)

我试图链接两个有问题的php页面。表单提交后,它会检查数据库以存储值,然后必须重定向到下一页。 但我被困在header()函数中。它没有重定向到下一页。我哪里做错了

    $q1= "SELECT * FROM user_lang WHERE lang='$lang' AND q_id='1'";
$r1=mysqli_query($connection, $q1) or die(mysqli_error($connection));
$row1=mysqli_fetch_assoc($r1);

$q2="SELECT * FROM user_test WHERE mid='$username'";
$r2=mysqli_query($connection, $q2) or die(mysqli_error($connection));
$row2=mysqli_fetch_row($r2);
echo '<div class="wrapper" style="padding-top:5%;">';
echo '<div class="login-page">
<h2 align="center">'.$lang.' Module 1</h2>';
if(isset($_POST['answer']))
{
    $answer=$_POST['answer'];
    if(mysqli_num_rows($r2)>0)
    {
$loadquery2="UPDATE user_test SET q1='$answer' WHERE mid='$username'";
$loadres2=mysqli_query($connection,$loadquery2) or die(mysqli_error($connection));
        header('Location: "/vtest/q2.php"');
    }
    else
    {
        $loadquery2="INSERT INTO user_test(mid,q1) VALUES ('$username','$answer')";
        $loadres2=mysqli_query($connection,$loadquery2) or die(mysqli_error($connection));
        header('Location: "/vtest/q2.php"');
    }
}
else
{
echo "<form method='POST'>";
echo $row1['quest'];
echo '<br><input type="radio" name="answer" value="a" checked>'.$row1['o1'].'<br>';
echo '<input type="radio" name="answer" value="b" >'.$row1['o2'].'<br>';
echo '<input type="radio" name="answer" value="c" >'.$row1['o3'].'<br>';
echo '<input type="submit" value="Submit">';
echo"</form>";
}
echo '</div></div></body></html>';
?>
$q1=“从用户_lang中选择*,其中lang='$lang'和q_id='1';
$r1=mysqli_查询($connection,$q1)或die(mysqli_错误($connection));
$row1=mysqli\u fetch\u assoc($r1);
$q2=“从用户测试中选择*,其中mid='$username';
$r2=mysqli_查询($connection,$q2)或死亡(mysqli_错误($connection));
$row2=mysqli\u fetch\u行($r2);
回声';
回声'
“.$lang.”模块1“;
如果(isset($_POST['answer']))
{
$answer=$_POST['answer'];
如果(mysqli_num_行($r2)>0)
{
$loadquery2=“更新用户\测试集q1='$answer',其中mid='$username';
$loadres2=mysqli_查询($connection,$loadquery2)或die(mysqli_错误($connection));
标题('Location:“/vtest/q2.php”);
}
其他的
{
$loadquery2=“插入用户测试(mid,q1)值(“$username”,“$answer”)”;
$loadres2=mysqli_查询($connection,$loadquery2)或die(mysqli_错误($connection));
标题('Location:“/vtest/q2.php”);
}
}
其他的
{
回声“;
echo$row1['quest'];
回显“
”.$row1['o1']”。
; 回显“.$row1['o2']”。
; 回显“.$row1['o3']”。
; 回声'; 回声“; } 回声'; ?>
顺便说一句,这个文件名为q1.php&当我提交表单时,url没有改变。我认为这意味着它不是q2.php页面上的错误,而是q1.php本身的错误。

替换

 header('Location: "/vtest/q2.php"');

更新

1) 标题(……)前不应有任何输出(即echo..或HTML代码);指挥部

2) 标签前不应有空格(或换行符)

3) 黄金法则!-该文件(如果包括其他文件)具有UTF8,没有BOM编码(而不仅仅是UTF-8)。这在很多情况下都是个问题(因为UTF8编码的文件在文件输出的开始部分有一些特殊的字符

4) 启用错误报告。并说出错误

5) 如果重定向,则在标头之后(…);您必须使用出口

6) 在引用中始终使用301或302:

  header("location: http://example.com",  true,  301 );  exit;
7) 如果以上都没有帮助,请使用JAVSCRIPT重定向(谷歌不推荐),但这可能是最后一次机会了

echo "<script type='text/javascript'>window.top.location='http://example.com/';</script>"; exit;
echo”窗口。顶部。位置=http://example.com/';"; 出口

头代码不会在echo或任何html标记后运行。你需要在topSo中移动你的条件除了关闭php没有其他方法吗?你可以使用javascript重定向方法<代码>echo“window.location.href=”您的路径“是的,现在正在尝试使用javascript!好的,它的工作原理。你可以使用你的if-else条件让你检查更新或插入查询工作原理?
echo "<script type='text/javascript'>window.top.location='http://example.com/';</script>"; exit;