zufallszahl "absichern"??

Hey ich hab mal ein kleines spiel gmacht bloß klappts net…

hier mal das script:
[php]
<?php
//Zufallszahl
$random = rand(10,20);
$test1 = $rand;

echo $random;

?>

<?php //Überprüfung if($_POST['test'] < $test1){ echo "zu klein"; } if($_POST['test'] > $test1){ echo "zu groß"; } if($_POST['test'] == $test1){ echo "richtig"; } ?>

[/php]

klar den fehler weiß ich… sobald man auf absenden geht, wird eine neue zahl erzeugt, daher wollt ich fragn, wie sichert man die zufallszahl ab, bis „richtig“ kommt ?! weil zZ kommt immer die Ausgabe „zu groß“…

danke schon mal für die hilfe!

gruß wolf360

Überprüf’ mal die Namen deiner Felder und Variablen!
Als erstes weist du mit

[php]
$random = rand(10,20);
$test1 = $rand;
[/php]

Eine falsche Variable zu! Nämlich $rand statt $random!
Später prüfst du dann auf diese Variable, die es ja nicht gibt.
Das die Zufallswerte neu erzeugt werden, kannst du mit Sessions unterbinden,
wenn die Session gesetzt ist, wird kein neuer Wert eingetragen,
wenn sie nicht gesetzt ist, also zu Beginn, oder wenn ‚gewonnen‘ wurde,
wir der Zufallswert in die Session eingetragen!

Ich hab dir das unten mal gemacht, schau ‚s dir einfach an und frag‘, wenn
was unverständlich ist!

[php]

<?php session_start(); if (!isset($_SESSION['zahlen'])) { $_SESSION['zahlen'] = array(); } //Zufallszahl if (!isset($_SESSION['zufallszahl'])) { $_SESSION['zufallszahl'] = rand(10,20); } ?>
<?php //Überprüfung if (isset($_POST['userzahl'])) { if($_POST['userzahl'] < $_SESSION['zufallszahl']){ if (!in_array($_POST['userzahl'], $_SESSION['zahlen'])) { $_SESSION['zahlen'][] = $_POST['userzahl']; } echo "Zu klein (".$_POST['userzahl'].")
"; echo "Ihre Zahlen:
"; echo implode(',', $_SESSION['zahlen']); } elseif ($_POST['userzahl'] > $_SESSION['zufallszahl']) { if (!in_array($_POST['userzahl'], $_SESSION['zahlen'])) { $_SESSION['zahlen'][] = $_POST['userzahl']; } echo "Zu groß (".$_POST['userzahl'].")
"; echo "Ihre bisherigen Zahlen:
"; echo implode(', ', $_SESSION['zahlen']); } elseif ($_POST['userzahl'] == $_SESSION['zufallszahl']) { echo "Richtig!!!
"; echo "Ihre Versuche: ". count($_SESSION['zahlen']); unset($_SESSION['zufallszahl']); unset($_SESSION['zahlen']); echo "
"; echo "Nochmal!"; } } ?>

[/php]

EDIT: okey danke für hilfe!!

Setze unten bei der überprüfung nach der Zahl ein else-Zweig, indem du eingibst:
Bitte gebe eine Zahl ein oder so.

MfG, matibaski

aber es kann doch trotzdem leute gebn die buchstaben eingeben und das will ich verhinder?!

[php]

<?php session_start(); if (!isset($_SESSION['zahlen'])) { $_SESSION['zahlen'] = array(); } //Zufallszahl if (!isset($_SESSION['zufallszahl'])) { $_SESSION['zufallszahl'] = rand(10,20); } ?>
<?php //Überprüfung if (isset($_POST['userzahl']) && $_POST['userzahl'] != "") { if (is_numeric($_POST['userzahl'])) { if($_POST['userzahl'] < $_SESSION['zufallszahl']){ if (!in_array($_POST['userzahl'], $_SESSION['zahlen'])) { $_SESSION['zahlen'][] = $_POST['userzahl']; } echo "Zu klein (".$_POST['userzahl'].")
"; echo "Ihre Zahlen:
"; echo implode(',', $_SESSION['zahlen']); } elseif ($_POST['userzahl'] > $_SESSION['zufallszahl']) { if (!in_array($_POST['userzahl'], $_SESSION['zahlen'])) { $_SESSION['zahlen'][] = $_POST['userzahl']; } echo "Zu groß (".$_POST['userzahl'].")
"; echo "Ihre bisherigen Zahlen:
"; echo implode(', ', $_SESSION['zahlen']); } elseif ($_POST['userzahl'] == $_SESSION['zufallszahl']) { echo "Richtig!!!
"; echo "Ihre Versuche: "; echo count($_SESSION['zahlen'])+1; unset($_SESSION['zufallszahl']); unset($_SESSION['zahlen']); echo "
"; echo "Nochmal!"; } } else { echo "Eingabe muss eine Ganzzahl sein!"; echo "
"; echo "Nochmal!"; } } else { echo "Bitte geben Sie eine Zahl ein!"; echo "
"; echo "Nochmal!"; } ?>

[/php]

Du testest die Usereingabe mit is_numeric()!

danke für die hilfe!!!