提交到下一页后重定向

时间:2017-01-28 07:24:31

标签: 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);

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

BTW此文件名为q1.php&amp;当我提交表单时,网址不会改变。我认为这意味着它不是q2.php页面上的错误,而是q1.php本身。

1 个答案:

答案 0 :(得分:-1)

替换

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

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

<强>更新

1)标题之前不应有任何输出(即echo ..或HTML code)(.......);命令。

2)<?php and after ?>标签之前不应有空格(或换行符)。

3)GOLDER RULE! - 文件(以及,如果包含其他文件)具有 UTF8 而没有BOM编码(而不仅仅是UTF-8)。这在许多情况下都是问题(因为UTF8编码的文件在文件输出的开头有一些特殊的字符)!!!!!!!!!!!

4)打开错误报告。并告诉错误。

5)如果重定向,则在标题(...)之后;你必须使用退出;

6)总是在参考中使用301或302:

  header("location: http://example.com",  true,  301 );  exit;

7)如果以上都没有帮助,请使用JAVSCRIPT重定向(不推荐Google),但这可能是最后的机会......:

echo "<script type='text/javascript'>window.top.location='http://example.com/';</script>"; exit;