2013-12-12 4 views
0

Я создаю сайт, который пользователи могут зарегистрироваться для членства - после регистрации, пользователь может просматривать страницу index.php, который содержит форму:PHP/MySQL Форма ввода - Quiz Game

index.php

<?php # index.php 
session_start(); 
//check session first 
if (!isset($_SESSION['email'])){ 
include ('../includes/header.php'); 
}else 
    { 
session_start(); 
include ('../includes/header.php'); 
require_once ('../../mysql_connect.php'); 
      $query = "SELECT * FROM answers ORDER BY RAND() LIMIT 1"; 
      $result = @mysql_query ($query); 
      $num = mysql_num_rows($result); 
      if ($num > 0) { // If it ran OK, display all the records. 
       while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {  
?> 

<div class="newGame"> 
     <h2>Are you a Question Master?<hr /></h2> 
     <h3 style="color:#000">Find Out Now!</h3> 
</div> 
<br /> 

<div class="newGameContain"> 
     <form action="gameSubmit.php" method="post" autocomplete="off"> 
     <h2><? echo $row["Question"]."<hr />"; ?></h2> 
     <h3>Enter Player Answers</h3> 
       <p><input type="text" placeholder="Player 1" name="player1" value="<? echo $_POST['player1']; ?>" /> <input type="text" placeholder="Player 2" name="player2" value="<? echo $_POST['player2']; ?>" /></p> 
       <p><input type="text" placeholder="Player 3" name="player3" value="<? echo $_POST['player3']; ?>" /> <input type="text" placeholder="Player 4" name="player4" value="<? echo $_POST['player4']; ?>" /></p> 
       <p><input type="submit" class="submitButton" /> <input type="reset" class="resetButton" value="Reset" /> </p> 
       <input type="hidden" name="questionId" value="<?php echo $row['ID']; ?>" /> 
       <input type="hidden" name"qAnswer" value="<?php echo $row["Answer"]; ?>" /> 
       <input type="hidden" name="submitted" value="TRUE" /> 
</form> 
<p></p> 
</div> 
<br /> 


<?php 
        } //end while statement 
      } //end if statement 
    mysql_close(); 
    //include the footer 
    include ("../includes/footer.php"); 
} 
?> 

Затем на странице формы действия (gameSubmit.php) у меня есть следующий код:

gameSubmit.php

<?php # index.php 
session_start(); 
//check session first 
if (!isset($_SESSION['email'])){ 
include ('../includes/header.php'); 
}else 
    { 
session_start(); 
include ('../includes/header.php'); 
require_once ('../../mysql_connect.php'); 
      $query = "SELECT * FROM answers ORDER BY RAND() LIMIT 1"; 
      $result = @mysql_query ($query); 
      $num = mysql_num_rows($result); 
       if ($num > 0) { // If it ran OK, display all the records. 
        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {  
?> 

<? if (isset($_POST['submitted'])){ 
     $correct1Msg = "<div class='correct1Msg'><p style='color:#000;font-family:Arial, Helvetica, sans-serif;'>Player 1 entered the <span id='answerUnder'>correct answer</span>.</p></div><p></p>"; 
     $correct2Msg = "<div class='correct2Msg'><p style='color:#000;font-family:Arial, Helvetica, sans-serif;'>Player 2 entered the <span id='answerUnder'>correct answer</span>.</p></div><p></p>"; 
     $incorrect1Msg = "<div class='incorrect1Msg'><p style='color:#F00;font-family:Arial, Helvetica, sans-serif;'>Player 1 entered the <span id='answerUnder'>incorrect answer</span>.</p></div><p></p>"; 
     $incorrect2Msg = "<div class='incorrect2Msg'><p style='color:#F00;font-family:Arial, Helvetica, sans-serif;'>Player 2 entered the <span id='answerUnder'>incorrect answer</span>.</p></div><p></p>"; 

$player1Answer = $_POST['player1']; 
$player2Answer = $_POST['player2']; 
$player3Answer = $_POST['player3']; 
$player4Answer = $_POST['player4']; 

$correctAnswer = $row['Answer']; 
$questionAnswer = $_POST['qAnswer']; 
$questionID = $row['ID']; 
$answeredID = $_POST['questionId']; 
$id1 = 1; 
$id2 = 2; 
$answer1 = "Red"; 
$answer2 = "4"; 

     if ($player1Answer == $questionAnswer){ 
      echo $correct1Msg; 
     } 

     if ($player1Answer != $questionAnswer){ 
      echo $incorrect1Msg; 
     } 

     if ($questionID == "1" && $player2Answer == "Red"){ 
      echo $correct2Msg; 
     }elseif ($questionID == "2" && $player2Answer == "4"){ 
      echo $correct2Msg; 
     }else{ 
      echo $incorrect2Msg; 
     } 

     if ($questionID == "1" && $player3Answer == "Red"){ 
      echo $correct3Msg; 
     }elseif ($questionID == "2" && $player3Answer == "4"){ 
      echo $correct3Msg; 
     }else{ 
      echo $incorrect3Msg; 
     } 

     if ($questionID == "1" && $player4Answer == "Red"){ 
      echo $correct4Msg; 
     }elseif ($questionID == "2" && $player4Answer == "4"){ 
      echo $correct4Msg; 
     }else{ 
      echo $incorrect4Msg; 
     } 
} 
?> 

<?php 
        } //end while statement 
      } //end if statement 
    mysql_close(); 
    //include the footer 
    include ("../includes/footer.php"); 
} 
?> 

Итак, как вы можете видеть, я пытаюсь несколько разных методов проверки ответов игроков на последний вопрос. В основном, я пытаюсь сделать так, чтобы, когда пользователь отправляет исходную форму (расположенную на index.php) - действие формы (gameSubmit.php) проверяет ответ каждого игрока с правильным ответом из вопроса, отображаемого на последней странице (т.е. вопрос, на который ответили игроки) - я неустанно просматривал форумы, веб-сайты, книги и многое другое для ответа на мою проблему; Я просто не могу найти объяснения, которые я понимаю, или это работает для меня.

+0

Mike B - Извиняюсь, как я могу ответить на вопросы пользователей и проверить форму отправки, если они ввели правильный ответ на странице gameSubmit.php? Извините, мне трудно говорить. В настоящее время мой метод проверки несовместим, он не перекрестно ссылается на вопрос/ответ, на который ответили игроки - это абсолютно случайный. – rockmandew

+0

'mysql_num_rows' - ​​двойная ошибка. 1. никогда не используйте 'mysql_num_rows', если вы не пытаетесь получить * фактическое количество строк *. Используйте '_fetch_row' напрямую и проверьте значение null. 2. Не используйте функции 'mysql_'. – cwallenpoole

+0

Также есть предварительный просмотр веб-сайта по адресу http://kethcart.uwmsois.com/qm/htdocs/Home/index.php - вам нужно будет зарегистрировать учетную запись, но вы найдете форму игры на главной странице (index.php) не стесняйтесь протестировать его. – rockmandew

ответ

0

Ваша страница действия захватывает новый случайный вопрос.

Вам нужно сделать что-то вроде:

$qid = $_POST["questionId"]; 
$query = "SELECT * FROM answers WHERE questionId='$qid'"; 

Я бы рекомендовал:

  • использование mysqli_ функции
  • избежать SELECT * - вместо того, чтобы указать столбцы, которые требуют
  • пользовательского ввода побег перед тем, как поместить их в запрос MySQL, например mysqli_escape_string
+0

rybo111 - Большое спасибо за ответ, я сейчас применяю изменения и дам вам знать, как это работает. – rockmandew

Смежные вопросы