• Non stampa echo per il Sondaggio

    Ho notato che non trova "Devi selezionare una risposta!", escono solo gli altri 2

    [PHP]
    if(isset($_POST['puls_invio'])) {
    if(isset($_POST['voto'])) {
    $voto=mysql_real_escape_string($_POST['voto']);
    $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1";
    if(mysql_query($q)) {
    echo "Grazie, il tuo voto è stato inserito!";
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    else {
    echo "Devi selezionare una risposta!";
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    else {
    echo "Hai già votato, grazie!";
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }

    [/PHP]


  • User Attivo

    Ciao Apthu,
    non capisco bene lo scopo, comunque $_POST['voto'] evidentemente è impostato anche quando non te lo aspetti.
    hai provato a fare un var_dump($_POST['voto'])?

    Se ottieni una variabile vuota, allora prova a sostituire if(isset($_POST['voto'])) con if(!empty($_POST['voto'])).

    Luca


  • @lucabartoli said:

    Ciao Apthu,
    non capisco bene lo scopo, comunque $_POST['voto'] evidentemente è impostato anche quando non te lo aspetti.
    hai provato a fare un var_dump($_POST['voto'])?

    Se ottieni una variabile vuota, allora prova a sostituire if(isset($_POST['voto'])) con if(!empty($_POST['voto'])).

    Luca

    Appare NULL, però forse il codice andava già bene di per se perché ho vuotato i cookie da Safari e ora va bene.

    In realtà il codice che ho postato non è completo, manca il cookie, sarebbe così:

    [PHP]
    if(isset($_POST['puls_invio'])) {
    if(!isset($_COOKIE['votato'])) {
    if(isset($_POST['voto'])) {
    $voto=mysql_real_escape_string($_POST['voto']);
    $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1";
    if(mysql_query($q)) {
    echo "Grazie, il tuo voto è stato inserito!";
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    setcookie("votato", "si", time()+5365246060); //Dura 5 anni
    }
    }
    else {
    echo "Devi selezionare una risposta!";
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    else {
    echo "Hai già votato, grazie!";
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    [/PHP]


  • User Attivo

    Il codice sembra corretto. Se voto passa null dovrebbe funzionare tutto. 😉

    Luca


  • @lucabartoli said:

    Il codice sembra corretto. Se voto passa null dovrebbe funzionare tutto. 😉

    Luca

    Difatti se provi nel tuo browser che non ha ancora il cookie, clicca su Vota senza selezionare la risposta e apparirà un avviso a triangolo, poi selezionane una e vota, poi rivota e uscirà il terzo echo gruppoalveo.altervista.org/index.php