Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Frase nel ciclo if non visibili.

    Salve,

    Premetto che è da poco tempo che sto intraprendendo lo studio del PHP, quindi potrei commettere errore grossolani.
    Questa mattina per esercitarmi, ho deciso di fare uno script, dove in base a due numeri (generati in modo random) l'utente doveva fornire la risposta attraverso due checkbox (Vero o Falso).
    Il problema è che una volta generato lo script (a mio parere funzionante) le frasi presenti nel tag "echo" non si visualizzano.
    Ecco a voi il codice, nella speranza che mi possiate dare una mano.

    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento senza titolo</title>
    </head>
    <body>
    <?php
    $num1
    =$_POST['num1'];
    $num2=$_POST['num2'];
    $answer=$_POST['answer'];
    $_POST['risul'];
    $risultato;
    $risultato=$num1+$num2;
    echo 
    $risultato;
    echo 
    $risul;
    if((
    $answer==vero) && ($risultato==4)){
        echo 
    "Complimenti. La risposta da lei assegnata è corretta.";
    } elseif ((
    $answer==falso) && ($risultato==4)){
        echo 
    "Siamo spiacenti. La risposta da lei scelta è errata";
    }
    ?>
    </body>
    </html>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Benvenuto.

    Codice PHP:
    $num1=$_POST['num1'];
    $num2=$_POST['num2'];
    $answer=$_POST['answer'];

    // questo non ha senso, non lo assegni a niente
    $_POST['risul'];

    // anche questo non serve, in PHP non è necessario dichiarare le variabili
    $risultato;

    $risultato=$num1+$num2;
    echo 
    $risultato;

    // la variabile $risul non è inizializzata in alcun modo, quindi l'echo
    // stampa la stringa vuota, ovvero niente.
    echo $risul;

    // vero non è una variabile, né una stringa, scritta così verrebbe trattata
    // come una costante, ma non l'hai definita da nessuna parte
    if(($answer==vero) && ($risultato==4)){
        echo 
    "Complimenti. La risposta da lei assegnata è corretta.";
    }
    // anche per "falso" vale la stessa cosa detta per "vero"
    elseif (($answer==falso) && ($risultato==4)){
        echo 
    "Siamo spiacenti. La risposta da lei scelta è errata";

    Sistema i problemi segnalati e dovrebbe funzionare.

  3. #3
    Anzitutto, ti ringrazio per la risposta.

    Effettivamente, alcune stringe sono inutili. Le avevo inserite per prova e ho scordato di eliminarle, quindi ti ringrazio per la segnalazione.

    La pagina php, postat al primo post si collega con la seguente:

    codice HTML:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Domande Random!</title>
    
    
    <?php
     echo "Il risultato della seguente addzione produce un risultato uguale a 4?";
     $numero1 = rand(1, 10);
     $numero2 = rand(1, 10);
    ?> 
    
    
    <form action="risposta.php" id="form1" name="form1" method="post">
    <input type="text" name="num1" value="<?php echo $numero1; ?>">
    +
    <input type="text" name="num2" value="<?php echo $numero2; ?>">
    
    <p>Risposta: V
        <input type="radio" name="answer" id="radio" value="vero" />
      F
      <input type="radio" name="answer" id="radio2" value="falso" />
      </p>
    <input type="hidden" name="risul" value="<?php $result=$numero1+$numero2;  ?>"> 
    <input type="submit">
    </form>
    
    </head>
    <body>
    </body>
    </html>

    Il valore "vero" e "falso" servono per prendere il valore dai due check box presenti.
    Ho sbagliato?
    Ultima modifica di David92; 08-02-2015 a 14:47

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da David92 Visualizza il messaggio
    Effettivamente, alcune stringe sono inutili.
    Quelle che tu chiami stringhe, in realtà sono "istruzioni", le stringhe sono un'altra cosa.

    Il valore "vero" e "falso" servono per prendere il valore dai due check box presenti.
    Ho sbagliato?
    Sì, vero e falso sono stringhe, quindi il controllo va fatto così
    Codice PHP:
    // nota i doppi apici attorno a vero e falso, così vengono trattate come stringhe
    if(($answer == "vero") && ($risultato==4))
    {
        echo 
    "Complimenti. La risposta da lei assegnata è corretta.";
    }
    elseif ((
    $answer == "falso") && ($risultato==4))
    {
        echo 
    "Siamo spiacenti. La risposta da lei scelta è errata";


  5. #5
    Hai perfettamente ragione.

    Ho apportanto la modifica da te suggerita, ma le due frasi presenti negli "echo" non sono ancora visibili
    Se ho il permesso, potrei inserire il link dove sto provando il mio script.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non ti stampa comunque niente, perché se $risultato è diverso da 4, non si entra né nell'if, né nell'elseif.
    Nel tuo codice un risultato diverso da 4 non è contemplato.

    Per contemplare tutti i casi avresti bisogno di 4 condizioni, ovvero tutte le combinazioni vero/falso con un numero pari/diverso da 4.

  7. #7
    Oddio che stupido che sono stato
    Ti ringrazio veramente di cuore. Adesso il mio script funziona

    Ci si becca alla mia prossima "inesperienza".

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.