如果答案正确,则重定向到另一页的代码

时间:2013-04-14 14:44:00

标签: php

我正在进行在线测试。有10个级别。问题是从数据库中挑选出来的,如果答案是正确的,那么它会更新该特定用户的清除级别并在同一页面上显示下一个问题。

但是如果答案是正确的,我希望将页面指向另一个页面,其URL在数据库中,并按上述方式更新用户的级别号。 我知道如何在同一页面显示问题,但如果正确则不知道如何重定向。

以下是简单测试的代码,其中问题显示在同一页面上。

<?php
 session_start();
 if(!isset($_SESSION['myusername'])){
 header("location:index.php?unreg=1");
  }
 else {
 $myuser = $_SESSION["myusername"];
  $mypass = $_SESSION["mypassword"];

 $host="localhost"; // Host name 
  $username=""; // Mysql username 
   $password=""; // Mysql password 
  $db_name=""; // Database name 
  $tbl_name="members"; // Table name 
    $tbl_name2="quiz"; // Table name 2

     // Connect to server and select databse.
     mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
   mysql_select_db("$db_name")or die("cannot select DB");

     if(isset($_POST['qno']))
    {
       $sql3="SELECT * FROM $tbl_name2 WHERE id='".$_POST['qno']."'";
    $result3=mysql_query($sql3);

       $disp3=mysql_fetch_assoc($result3);

      $sql4="SELECT * FROM $tbl_name WHERE username='$myuser' and password='$mypass'";
        $result4=mysql_query($sql4);

      $disp4=mysql_fetch_assoc($result4);

     if($disp3['Answer']==$_POST['Answer'])
     {

     $sql5 ="UPDATE $tbl_name SET level_crossed='".($disp4

   ['level_crossed']   +1)."', Score='    $disp4['Score']+1)."' WHERE 
      username='$myuser' and password='$mypass'";
     $result5=mysql_query($sql5);
         }
         else {
          $sql5="UPDATE $tbl_name SET level_crossed='".($disp4['level_crossed']+1).
         "' WHERE username='$myuser' and password='$mypass'";
         $result5=mysql_query($sql5);

        }

         }

        $sql="SELECT * FROM $tbl_name WHERE username='$myuser' and password='$mypass'";
        $result=mysql_query($sql);

     $disp=mysql_fetch_assoc($result);
            echo "    ".$disp['level_crossed']."    ";


          $sql7="SELECT * FROM $tbl_name2 WHERE id='".($disp['level_crossed']+1)."'";
           $result7=mysql_query($sql7);

            $disp2=mysql_fetch_assoc($result7);
               ?>
        <br>
     <?php

      echo "Q.)".$disp2['Question']."    ";
        ?>
          <br>
           <form name="quizq" action="quiz1.php" method="post" >
         <input name="qno" type="hidden" value="<?php echo $disp['level_crossed']+1; ?>" />
          <input type="radio" name="Answer" value="<?php echo $disp2['Option1'];>" /><? 
                                                                                                        php echo $disp2['Option1']; ?><br>
      <input type="radio" name="Answer" value="<?php echo $disp2['Option2']; ?>" />
          <?php  echo $disp2['Option2']; ?><br>
      <input type="radio" name="Answer" value="<?php echo $disp2['Option3']; ?>" />
     <?php echo $disp2['Option3']; ?><br>
      <input type="radio" name="Answer" value="<?php echo $disp2['Option4']; ?>" />
       <?php echo $disp2['Option4']; ?><br>
       <input type="submit" value="Submit Answer" />
        </form>
     <br><br>
         <a href="logout.php">Logout</a>
   <?php


     }
    ?>

3 个答案:

答案 0 :(得分:3)

要重定向到另一个网址:

header('Location: /path/of/next/page');

与任何其他header一样,在调用header之前,您无法呈现任何输出。其中包括echoprint以及php代码之外的任何文字。

答案 1 :(得分:2)

您可以使用标题重定向页面

header( 'Location: http://www.url.com/' );

答案 2 :(得分:0)

尝试使用header 例如: header( 'Location: test.php' );