2016-05-24 8 views
0

Dies ist eine Zufallszahl Ratespiel zwischen 1 und 100.PHP Guessing Nummer

Ich bin auf der Rate Nummer Teil fest. Der Code funktioniert nicht, egal welche Nummer ich habe, zeige mir einfach die Nachricht "Deine Nummer ist niedriger!" Ich brauche Hilfe.

Das ist was ich bisher habe.

<?php 

$x = rand(1, 100); 
$num = ''; 

if (isset($_POST['submit'])) { 


     if ($num < $x) 
     { 
      echo " Your number is lower! <br />"; 
     } elseif ($num > $x) 
      { 
      echo " Your number is higher! <br />"; 
     } elseif ($num == $x) 
      { 
      echo " Congratulations! You guessed the hidden number. <br />"; 
     } else 
      { 
      echo " You never set a number! <br />"; 
     } 




} 
?> 
<p> 
<form action="" method="post"> 
<input type="text" name="num"> 
<button type="submit" name="submit">Guess</button> 
<button type="reset" name="Reset">Reset</button> 
</form> 
</p> 
+1

wo Sie dieser Variable Nummer zuweisen: '$ num'? –

+1

Versuchen Sie, $ num = $ _POST ['num']; 'hinzuzufügen, nachdem Sie Ihre Eingabe überprüft haben. – Boby

+0

Sie weisen die' $ num' als 'null' oder' ''' ... zu. –

Antwort

0

Sie immer niedriger bekommen, weil es keine value in dir $num .So ist, müssen Sie $num

<?php 

    $x = rand(1, 100); 
    $num = ''; 

    if (isset($_POST['submit'])) { 
    $num = $_POST['num']; // Add this to set value for $num variable 
      if ($num < $x) 
      { 
       echo " Your number is lower! <br />"; 
      } elseif ($num > $x) 
       { 
       echo " Your number is higher! <br />"; 
      } elseif ($num == $x) 
       { 
       echo " Congratulations! You guessed the hidden number. <br />"; 
      } else 
       { 
       echo " You never set a number! <br />"; 
      } 
    } 
    ?> 
0

Sie müssen die Zahl nach dem Senden des Formulars festlegen.

if (isset($_POST['submit'])) { 
    $num = $_POST['num']; 
    if ($num < $x) 
    { 
     echo " Your number is lower! <br />"; 
    } elseif ($num > $x) 
    { 
     echo " Your number is higher! <br />"; 
    } elseif ($num == $x) 
    { 
     echo " Congratulations! You guessed the hidden number. <br />"; 
    } else 
    { 
     echo " You never set a number! <br />"; 
    } 
} 
0
// value of $x is in between 1 and 100 means greater than 0 and lesser than 101 
$x = rand(1, 100); 
// $num value is empty and while you attempt to compare with this this will converted to zero 
$num = ''; 
// thus $num<$x always returns true, thats the mistake you need to assign the submitted value to the $num variable like 
$num=$_POST['num']; 
// put above line just before the if($num<$x) 
0

Dieses viel einfacher zu zuweisen würde, wenn man es hatte als switch/case Aussage:

$x = rand(1,1000); 
if(isset($_POST['submit'])) { 
    $num = $_POST['num']; 
    switch($num) { 
     case ($num < $x): 
     echo " Your number is lower! <br />"; 
     break; 
     case ($num > $x): 
     echo " Your number is higher! <br />"; 
     break; 
     case ($num == $x): 
     echo " Congratulations! You guessed the hidden number. <br />"; 
     break; 
     case '': 
     echo " You never set a number! <br />"; 
     break; 
    } 
} 

Example/Demo

0

Sie haben $num = '' (eine leere Zeichenfolge) festgelegt und vergleichen Sie sie mit einer zufällig generierten Zahl. Es ist offensichtlich, dass dies nicht funktionieren kann. Sie müssen $_POST['num'] in PHP lesen.

Dies funktioniert jedoch nicht wie wahrscheinlich erwartet. Sie müssen entweder die Zufallszahl in einem session speichern oder ein verstecktes Feld zum Formular hinzufügen. Andernfalls ändert sich die Zufallszahl bei jedem Versuch.