2016-02-14 2 views
-1

Я пытаюсь понять, почему моя кнопка «Перезагрузка» перезагружена, потому что увеличиваются догадки и все еще идут вверх. Мне также нужно добавить кнопку, которая отображает правильный номер, если кто-то сдастся. Спасибо за помощь ранним ребятам с предупреждением, это две части, которые я застрял.Не могу избавиться от предупреждения в PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Guessing Game</title> 
</head> 
<body> 
<center><form action="game.php" method="POST"> 
Guess a number 1-100:<input type="text" name="userGuess"/> 
<input type="submit" value="Guess"/> 
<center><form action="game.php"> 
<input type="reset" value="Restart"/> 
</form></center> 
</body> 
</html> 

<?php 
session_start(); 

$_SESSION['randNum'] = isset($_SESSION['randNum']) ? $_SESSION['randNum'] : rand(0, 100); 
$_SESSION['guesses'] = isset($_SESSION['guesses']) ? $_SESSION['guesses'] : 0; 

$randNum = $_SESSION['randNum']; 
$userGuess = $_POST['userGuess']; 
$userGuess = filter_input(INPUT_POST, "userGuess"); 

if (isset($randNum)) { 
    if ($userGuess<$randNum) { 
      echo "<center>You guessed too low!</center>"; 
      $_SESSION['guesses']++; 
      echo $_SESSION['guesses']; 
     } 
    if ($userGuess>$randNum) { 
      echo "<center>You guessed too high!</center>"; 
      $_SESSION['guesses']++; 
      echo $_SESSION['guesses']; 
     } 
    if ($userGuess==$randNum) { 
      echo "<center>Congratulations You're right!!!</center>"; 
         unset($_SESSION["randNum"], $_SESSION['guesses']); 
    } 
    if ($userGuess>100 || $userGuess<0) { 
      echo "<center>Please enter a number betweeen 1 and 100!</center>"; 
    } 
} 
else { 
    echo "Please enter a number between 1 and 100"; 
} 

?> 
+1

проста: использовать условный оператор для этого. но это также не позволяет вам '$ userGuess = @userGuess;' –

+0

По какой-то причине даже пользователь отключает операнд ошибки. Я все еще получаю ошибку при первой загрузке страницы. – Wolfenacht

ответ

0

Когда вы впервые заходите на страницу, нет данных POST; это почти обычный запрос. Однако, когда вы отправляете форму, данные POST отправляются вместе с запросом, а затем $_POST содержит userGuess.

Просто добавив if (isset($_POST['userGuess'])) вокруг вашего кода должен решить вашу проблему:

if (isset($_POST['userGuess'])) { 
    $userGuess = $_POST['userGuess']; 
    // ... 
0

почему бы не использовать

if (filter_input(INPUT_POST, "userGuess") != null) 
{ 

} 

или

$userGuess = filter_input(INPUT_POST, "userGuess"); 

это наборы $ userGuess к нулю, а не неопределенными ;

Update:

Ваших счетчики установлены в PHP (бэкэнде) вы не можете сбросить их с помощью кнопки сброса и не перезагрузки страницы.

Ответ на кнопку результата прост. кнопку

<input type="button" value="Answer" onclick="Alert('<?php echo $randNum; ?>')" /> 

создать для остальных, сделать небольшое исследование ...

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