2016-06-06 16 views
0

Die Website generiert die Zufallszahl von 1 bis 100 beim Zugriff auf die erste Seite (page1.php). Und der Benutzer wird die Nummer erraten.PHP Behalten Sie den Variablenumfang auch nach dem Neuladen der Seite bei

Die erste Seite enthält - ein Textfeld zum Akzeptieren einer Nummer des Benutzers und eine Absenden-Schaltfläche.

Die zweite Seite (page2.php) wird dem Benutzer zurückgegeben, wenn die Tippzahl zu hoch oder zu niedrig ist. Und die Seite zeigt eine Nachricht an, die den Benutzer "Zu hoch" oder "Zu niedrig" sagt. Die Seite enthält auch eine Schaltfläche (Wiederholungsschaltfläche), die es dem Benutzer ermöglicht, zur ersten Seite (page1.php) zurückzukehren, um eine neue Nummer erneut einzugeben eine Schaltfläche, mit der der Benutzer das Spiel beenden kann.

Die dritte Seite (page3.php) wird an den Benutzer zurückgegeben, wenn die Schätzung richtig ist. Die Seite zeigt "Korrekt", die Zufallszahl und die Anzahl der Versuche an.

Und ich habe diese index.php, die Herz für alle Seiten ist. Und hier ist der Code.

index.php

<?php 

$name = ''; 
$inputnumber = ''; 
$random = 33; //this is just an assumption to keep it simple 
$message = ''; 
$guesscount = ''; 
if (isset($_POST['action'])) { 
    $action = $_POST['action']; 
} 

if ($action === 'guess') { 
    $guesscount = $_POST['$guesscount']; 
    $inputnumber = $_POST['$inputnumber']; 
    if ($inputnumber == $random) { 
     $message = "Correct!"; 
     include 'page3.php'; 
    } 
    if ($inputnumber > $random) { 
     $message = "Too High"; 
     include 'page2.php'; 
    } 
    if ($inputnumber < $random) { 
     $message = "Too Low"; 
     include 'page2.php'; 
    } 
} 

if ($action === 'retry') { 
    include 'page1.php'; 
} 

page1.php

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Number Guess</title> 
    </head> 
    <body> 
     <h1>Number Guess</h1> 
     <form name="myForm" action="index.php" method="post" > 
      Number Guess: <input type="text" name="$inputnumber" value="<?php if(isset($inputnumber)==1){ 
echo $inputnumber;}else echo ""; ?>" /><br> 

      <input type="submit" name="action" value="guess" /> 
      <hr> 
      Guess Count: <?php echo $guesscount; ?> 
     </form> 
    </body> 
</html> 

page2.php

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Number Guess</title> 
    </head> 
    <body> 
     <h1>Number Guess</h1> 
     <form name="myForm" action="index.php" method="post" > 
      Message: <?php echo $message; ?> 
      <input type="hidden" name="$guesscount" value="<?php echo $guesscount;?>"/><br> 
      <input type="submit" name="action" value="retry" /> 

      <hr> 
      Guess Count: <?php echo $guesscount;?> 
     </form> 
    </body> 
</html> 

page3.php

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Number Guess</title> 
    </head> 
    <body> 
     <h1>Number Guess</h1> 
     <form name="myForm" action="index.php" method="post" > 
      Message: <?php echo $message; ?> 
      Number of Tries: <?php echo $guesscount; ?> 
      <input type="submit" name="action" value="ok" /> 

     </form> 
    </body> 
</html> 

page1.php ist die Seite zuerst zu laden.

Herausforderung, der ich gegenübergestanden habe, konnte ich den $ guetcount nicht immer stabil halten. Es setzt auf mich zurück. Ich habe Sitzung versucht, aber konnte es nicht lösen. Bitte helfen Sie, es zu lösen. Vielen Dank im Voraus.

+3

Entweder Sitzung, Cookie oder Datenbank;) - Sitzung sollte gut funktionieren, warum es für Sie nicht funktioniert hat? –

+0

Eine Sitzung sollte funktionieren, nicht sicher, warum nicht.Andere Optionen könnten sein, dass Sie die Variable über POST oder GET weitergeben (kodieren Sie sie so, dass sie die Nummer nicht kennen) oder vielleicht sogar einen Cookie verwenden. –

+0

Eine Session-Variable ist der Weg dorthin. Nicht sicher, warum Sitzungsvariablen nicht für Sie arbeiten, aber Sie zeigen keinen Code an, der versucht, sie zu verwenden, also können wir Ihnen nicht mit Code helfen, den wir nicht sehen. Allerdings könnten Sie das meiste mit nur einer PHP-Datei machen, anstatt mit 3, was die Dinge vereinfachen würde. –

Antwort

1

Ich weiß nicht warum, aber mein Bauchgefühl sagt mir, dass der Grund, warum die Sitzung für Sie auf anderen Seiten nicht funktioniert, weil Sie es nicht initiieren ??

Also, was Sie tun müssen, ist:

index.php

<?php 
session_start(); 
$_SESSION['myVariable'] = 'myVariable'; 
?> 

page1.php

<?php 
session_start(); 
$mySessionVar = $_SESSION['myVariable']; 
var_dump($mySessionVar); // <- this should print myVariable 
?> 

Sie eine Fehlermeldung erhalten kann sagen, dass $ _SESSION null ist oder nicht gesetzt und um zu verhindern, dass Sie einfach $ _SESSION innerhalb und

if(isset($_SESSION['myVariable']) && $_SESSION['myVariable'] != null) { 
    $mySessionVar = $_SESSION['myVariable'[; 
} 
einfügen können
+0

Danke für Ihre Hilfe. Ich habe es in index.php initialisiert, aber ich habe Sitzungsvariable in anderen Seiten nicht eingeschlossen. Vielleicht würde das funktionieren. Ich werde versuchen, es dich wissen zu lassen. – user3423927

+0

@ user3423927 es muss;) –

+0

Danke für Ihre Hilfe Cygan. Ich könnte das mit SESSIONS machen. Dein Vorschlag hat mir wirklich geholfen. – user3423927

Verwandte Themen