Was ist an bei diesem if else Konstukt in PHP falsch?

...komplette Frage anzeigen

3 Antworten

Würde versuchen mittels intval() die 2 Werte in Integer zu casten beim Vergleichen.

Kannst du mir das bitte genauer erklären? Oder vormachen? Weiß nicht genau was du meinst..

0

Kannst du eventuell den gesamten Code posten?

Die Session sollte man auch starten bevor damit gearbeitet wird...

Kannst du morgen bitte nochmal in diese Frage reinsehen? Da sende ich ihn rein :) ich bin Grad nicht mehr am PC :)

0
@tomaz
session_start();
$raten = $_POST['raten'];
if(!isset($_SESSION['generate'])):
$_SESSION['generate'] = rand(0,100);
endif;
$geszahl = $_SESSION['generate'];
if($geszahl == $raten)
unset($_SESSION);

echo "<br><br>";
#Prüft ob Zahl leer oder im falschen Bereich ist
if($raten > 100 or $raten < 1 or empty($raten))
    {   
    echo "<span style=\"color:#dc143c;\"> Die Zahl ist nicht im gewünschten Bereich!  </span>";
    }
    else 
    {
        if($raten > $_SESSION['generate'])  
        {
            echo "Deine erste Zahl ist $raten! Sie ist aber größer als die gesuchte Zahl! Versuchs weiter! Deine Zahl muss zwischen 1 und $raten liegen!";
        }
        else if($raten < $_SESSION['generate'])
        {
            echo "Deine erste Zahl ist ".$raten. "! Sie ist aber kleiner als die gesuchte Zahl! Versuchs weiter! Deine Zahl muss zwischen $raten und 100 liegen!";
        }
    }

so ist er bis jetz - auf der anderen php datei ist nur das formular :) problem ist jetz das er mir immer wieder das selbe generiert - also die rand zahl die er mir macht bleibt inzwischen immer auf der selben zahl stehen - egal wie oft ich das spiel neu starte :o und dazu kommt noch das wenn ich die selbe Zahl eingebe wie die generiete sagt er mir das _SESSION undefined ist :o

0

Dein Fehler befindet sich hier:

$_SESSION['generate'] = rand(1,100);
echo $_SESSION['generate'];
session_start();

Du mußt natürlich ERST die Session starten und dann die Session-Variable setzen. Deine $_SESSION['generate'] ist nach dem Aufruf von session_start() nicht mehr gesetzt (weg).

So wird es was:

session_start();
$_SESSION['generate'] = rand(1,100);
echo $_SESSION['generate'];


kannst du mir sagen warum ich ein undefined variable SESSION bekomme sobald ich die selbe zahl rate wie mir generiert wird?

<?php
session_start();
echo "<meta charset='UTF-8'>";
$raten = $_POST['raten'];
$_SESSION['generate'] = rand(0,100);
if(!isset($_SESSION['generate'])):
endif;
$geszahl = $_SESSION['generate'];
if($geszahl == $raten)
unset($_SESSION);
echo "$geszahl";

echo "<br><br>";
#Prüft ob Zahl leer oder im falschen Bereich ist
if($raten > 100 or $raten < 1 or empty($raten))
    {   
    echo "<span style=\"color:#dc143c;\"> Die Zahl ist nicht im gewünschten Bereich!  </span>";
    }
    else 
    {
        if($raten > $_SESSION['generate'])  
        {
            echo "Deine erste Zahl ist $raten! Sie ist aber größer als die gesuchte Zahl! Versuchs weiter! Deine Zahl muss zwischen 1 und $raten liegen!";
        }
        else if($raten < $_SESSION['generate'])
        {
            echo "Deine erste Zahl ist ".$raten. "! Sie ist aber kleiner als die gesuchte Zahl! Versuchs weiter! Deine Zahl muss zwischen $raten und 100 liegen!";
        }
        else if($_SESSION['generate'] = $raten)
        {
        echo "GRATULATION";
        }
    }
0
@Evolution48

Du hast an der Stelle

else if($_SESSION['generate'] = $raten)

nur ein =-Zeichen vergessen. Du weißt der Variable hier einen Wert zu anstatt sie zu auf Gleichheit zu prüfen.

0
@Minilexikon

unset($_SESSION) ist keine gute Idee ;) *huch .. unter dem falschen kommi gepostet, srry

0

Was möchtest Du wissen?