Diskuze: Ako uložiť vygenerované číslo?

PHP PHP Ako uložiť vygenerované číslo? American English version English version

Avatar
termoxinprod
Člen
Avatar
termoxinprod:

Zdravím,
snažím sa učiť PHP a robiť si hocijaké funny programíky. Tak som si chcel urobiť "automatovku". Ide o to, že zadáte číslo. Program náhodne vygeneruje číslo od 0 do 100. Ak číslo, ktoré ste zadali je správne, vypíše, že ste ho uhádli správne.

Ale prúser: Neviem ako urobiť, aby sa mi náhodne vygenerované číslo uložilo do doby, kedy ho uživateľ uhádne. Skúšal som použiť superglobálnu premennú $_SESSION ale netuším ako ju použiť na tento prípad. Googlil som, skúšal som.. teraz už skúsim vašu pomoc.

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <p>Napíš číslo od 0 do 100, možno ho uhádneš!</p>
        <form method="post">
            <input name="cis" type="number" /><br />
            <input value="Odoslať" type="submit" />
        </form>
        <?php
        if (isset($_POST['cis']) && $_POST['cis'] != 0){
        $cis = $_POST['cis'];
        $gen = rand(0, 100);
        switch ($cis) {
                case $cis === $gen:
                    echo "Výborne, uhádli ste správne!";
                break;


                case $cis > 100:
                case $cis < 0:
                    echo "Hodnota je zle udaná!";
                break;

                case $cis > $gen:
                    echo "Skús menej!";
                break;

                case $cis < $gen:
                    echo "Skús viac!";
                break;

                default:
                    echo "Hodnota je zle udaná!";
                break;
                }
        }


            ?>

    </body>
</html>
 
Odpovědět 6.3.2015 15:30
Avatar
Odpovídá na termoxinprod
Martin Konečný (pavelco1998):

Nějak takto by to mohlo fungovat

session_start();  // musí být před jakýmkoliv výstupem, tzn. před HTML (na začátku souboru)

if (empty($_SESSION["gen"]) {
  $gen = random(0, 100);
  $_SESSION["gen"] = $gen;
}

// formulář

if ($_POST) {
  $cis = $_POST["cis"];
  $gen = $_SESSION["gen"];

  if ($cis == $gen) {
     // OK
  }
}
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 6.3.2015 16:03
Avatar
termoxinprod
Člen
Avatar
termoxinprod:

Super ďakujem. Ešte som si to musel trošku upraviť, teda pridať session_break();, pretože by sa to číslo nikdy nezrušilo. Ďakujem!

 
Nahoru Odpovědět 6.3.2015 16:32
Avatar
mkub
Redaktor
Avatar
Odpovídá na termoxinprod
mkub:

snaz sa zacinat PHP skript PHP kodom a nie HTML

a tymto sposobom dost lahko dojde k spagetizacii kodu a prestanes sa vyznat co je PHP a co uz je HTML kod

 
Nahoru Odpovědět 9.3.2015 6:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.