-1

我正在做一个在线测试。有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


     }
    ?>
4

3 回答 3

3

重定向到另一个网址:

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

就像其他任何事情一样header,您不能在调用之前呈现任何输出header。这包括echo、和标签print之外的任何文本。php

于 2013-04-14T14:46:50.630 回答
2

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

header( 'Location: http://www.url.com/' );
于 2013-04-14T14:46:40.427 回答
0

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

于 2013-04-14T14:49:39.593 回答