2013-04-14 25 views
-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 


    } 
    ?> 
+0

是否有打算進行一些代碼上市? – Nerdwood

+0

不管怎樣,我們不需要看到它 –

+0

Mysql_已被棄用,請使用PDO或mysqli代替 – Furry

回答

2

可以使用頭

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

重定向到另一個網址重定向頁面:

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

就像任何其他header,你不能調用header之前的任何輸出渲染。這包括echo,print以及php標籤之外的任何文字。

+0

只是一個難以置信的評論 - 一個HTTP頭位置應該在技術上使用絕對URI(http://www.server.com/path/of/next/page) 。 [HTTP頭位置](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) – Nerdwood

+0

相對於documentroot('/ path')是相當明確的。相對於當前頁面('page2.php'),我不推薦。 –

+0

哦,我同意這不是含糊不清......只是脫離了定義的標準!挑剔! ;) – Nerdwood

0

嘗試使用header 例如: header('Location: test.php');

相關問題