Я создаю сайт, который пользователи могут зарегистрироваться для членства - после регистрации, пользователь может просматривать страницу 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) проверяет ответ каждого игрока с правильным ответом из вопроса, отображаемого на последней странице (т.е. вопрос, на который ответили игроки) - я неустанно просматривал форумы, веб-сайты, книги и многое другое для ответа на мою проблему; Я просто не могу найти объяснения, которые я понимаю, или это работает для меня.
Mike B - Извиняюсь, как я могу ответить на вопросы пользователей и проверить форму отправки, если они ввели правильный ответ на странице gameSubmit.php? Извините, мне трудно говорить. В настоящее время мой метод проверки несовместим, он не перекрестно ссылается на вопрос/ответ, на который ответили игроки - это абсолютно случайный. – rockmandew
'mysql_num_rows' - двойная ошибка. 1. никогда не используйте 'mysql_num_rows', если вы не пытаетесь получить * фактическое количество строк *. Используйте '_fetch_row' напрямую и проверьте значение null. 2. Не используйте функции 'mysql_'. – cwallenpoole
Также есть предварительный просмотр веб-сайта по адресу http://kethcart.uwmsois.com/qm/htdocs/Home/index.php - вам нужно будет зарегистрировать учетную запись, но вы найдете форму игры на главной странице (index.php) не стесняйтесь протестировать его. – rockmandew