Visualizzazione risultati 1 fino 2 di 2

Discussione: PHP Salvare numero random

  1. #1
    Guest

    Predefinito PHP Salvare numero random

    Giorno a tutti, spero possiate essermi d'aiuto. sto facendo un esercizio in cui l'utente deve indovinare un numero generato casualmente compreso fra 1 e 1024 avendo a disposizione 10 tentativi, il mio problema sta che ogni volta che l'utente invia il numero da controllare il php crea un altro numero casuale e non riesco a capire come riuscire a salvare il primo numero e poi poterlo confrontare con il numero scelto dall'utente. spero possiate aiutarmi.

    [HTML]
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento senza titolo</title>
    </head>

    <body>
    <h1>inserisci il valore da controllare</h1>
    <form method="GET" action="calcolo.php">
    <input type="text" name="numero"> <br>
    <input type="hidden" name="tentativi" value="1"><br>

    <input type="submit" value="Clicca qui">
    </form>
    </body>
    </html>


    [PHP]

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento senza titolo</title>
    </head>

    <body>
    <form method="GET" action="calcolo.php">
    <h1>inserisci il valore da controllare</h1>
    <input type="text" name="numero"></input> <br>
    <?php
    $numero = $_GET['numero'];
    $nascosto = rand(1, 1024);

    $tentativi= $_GET["tentativi"] + 1;
    $vittoria = false;
    if ($tentativi < 11){
    echo '<input type="hidden" name="tentativi" value=';
    echo $tentativi;
    echo '></input>';

    if ($numero == $nascosto){
    echo "hai vinto";
    $vittoria = true;

    }
    if ($numero > $nascosto){
    echo "hai scelto un numero troppo grande";
    echo $nascosto;

    }
    if ($numero < $nascosto){
    echo "hai scelto un numero troppo piccolo";
    echo $nascosto;

    }
    } else{
    echo "hai perso";
    echo $nascosto;
    }
    if (($tentativi < 11) && ($vittoria == false)){
    echo '<input type="submit" value="Clicca qui">';
    }
    ?>
    </form>

    </body>
    </html>

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Questo è uno degli esercizi tipici della programmazione. Però non è stato pensato per essere implementato in una pagina web!

    Ciò che si fa di solito è creare il numero casuale e poi avviare un ciclo a cui chiedere all'utente di inserire un numero (fino a 10), valutando la correttezza della risposta.
    Questo non è possibile (direttamente) usando PHP per creare pagine web, perché lo script non interagisce direttamente con l'utente, bensì con i form HTML tramite richieste GET.

    È comunque possibile realizzarlo in maniera alternativa: una volta generato il numero casuale devi salvarlo nella memoria persistente (ad esempio in un database o in un file), assieme al numero di tentativi effettuati (inizialmente 0). Ad ogni tentativo dell'utente recupererai il valore e lo confronterai con quello inserito, aggiornando il numero di tentativi effettuati di conseguenza.

    Un'altra alternativa, stateless ma a mio parere meno pulita, consiste nell'inserire il numero nascosto nelle richieste del client, in maniera analoga a quanto stai già facendo col numero di tentativi.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •