我正在尝试链接两个有问题的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本身。
答案 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;