-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

別の URL にリダイレクトするには:

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

他の と同様headerに、 を呼び出す前に出力をレンダリングすることはできませんheader。これにはecho、 、 、およびタグprint外のテキストが含まれます。php

于 2013-04-14T14:46:50.630 に答える
0

使用してみてくださいheader 例: header( 'Location: test.php' );

于 2013-04-14T14:49:39.593 に答える