IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
termoxinprod
Člen
Avatar
termoxinprod:6.3.2015 15:30

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):6.3.2015 16:03

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í
+2,50 Kč
Řešení problému
Nahoru Odpovědět
6.3.2015 16:03
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
termoxinprod
Člen
Avatar
termoxinprod:6.3.2015 16:32

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
Tvůrce
Avatar
Odpovídá na termoxinprod
mkub:9.3.2015 6:45

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.