• User Newbie

    Sondaggio

    Ho cercato di creare un sondaggio seguendo questa guida (giorgiotave.it/tutorial/sondaggio1.php**), ma quando voto mi dà l'errore: "errore impossibile votare". Quindi, visto che avevo già fatto delle modifiche, ho ricominciato da capo modificando solo i dati del server sql, ma niente da fare.
    Potreste aiutarmi??


  • ModSenior

    Ciao smbo994,

    invece di:
    [php]
    if(!mysql_query($sql)){
    echo "Errore impossibile votare";
    echo "<script>
    function redirect(){
    window.location.replace("scegli.htm");
    }

    [/php]

    metti:
    [php]
    mysql_query($sql) or die(mysql_error());
    [/php]

    In modo che venga mostrato l'errore.


  • User Newbie

    niente...
    pagina bianca...
    non ci sono neanche queries al database...
    è giusto così il codice?
    [php]
    <?php

    include("db_connect.php");

    $risultati_mysql=mysql_query("SELECT * FROM nomi ");

    while ($riga1=mysql_fetch_array($risultati_mysql))

    {

    $id=$riga1["$paese"];

    $idnuovo=($id + 1);

    }

    $sql="UPDATE nomi SET $paese='$idnuovo' ";

    mysql_query($sql) or die(mysql_error());

    setTimeout("redirect()", 2000);

    </script>";

    exit();

    }else{

    echo "Voto valido";

    echo "<script>

    function redirect(){

    window.location.replace("guarda.php");

    }

    setTimeout("redirect()", 2000);

    </script>";

    }

    mysql_close();

    ?>
    [/php]Grazie!


  • ModSenior

    Ma $paese da dove prende il valore?


  • User Newbie

    Non lo so...
    Quindi è quello l'errore??
    Non so da dove lo prenda, non è citato neanche nelle pagine precedenti...


  • ModSenior

    Si, lo script funziona solo con i register_globals impostati su ON, prova cosi:
    [php]
    <?php

    include("db_connect.php");

    if(isset($_POST['paese']))
    $paese = $_POST['paese'];
    else
    exit;

    if(!in_array($paese, array('italia','spagna','portogallo','francia','inghilterra')))
    exit;

    $risultati_mysql=mysql_query("SELECT * FROM nomi ");

    while ($riga1=mysql_fetch_array($risultati_mysql))

    {

    $id=$riga1["$paese"];

    $idnuovo=($id + 1);

    }

    $sql="UPDATE nomi SET $paese='$idnuovo' ";

    mysql_query($sql) or die(mysql_error());

    setTimeout("redirect()", 2000);

    </script>";

    exit();

    }else{

    echo "Voto valido";

    echo "<script>

    function redirect(){

    window.location.replace("guarda.php");

    }

    setTimeout("redirect()", 2000);

    </script>";

    }

    mysql_close();

    ?>
    [/php]


  • User

    Ciao!, thedarkita.
    Io ho seguito lo stesso tutorial di (Sambo994), funziona tutto, grazie anche alle tue ultime modifiche. Io però non ho fatto il controllo dei voti con i cookie, ma oltre la tabella nomi per inserire i voti, ne ho creata un'altra per recuperare l'ip di ogni utente che votava, in modo che un utente potesse votare una volta sola.
    Ho creato un'altra tabella perchè aggiungendo il campo ip_utenti nella tabella nomi, non mi aggiornava mai i dati correttamente, allora ho creato una tabella separata.
    Con due tabelle funziona tutto, volevo capire se è giusto quello che ho fatto, oppure ci sono altri sistemi, anche perchè l'ho trovato semplice farlo in quel modo.
    Ti posto il codice modificato per farlo lavorare con due tabelle.

    [php]
    $ip=$_SERVER['REMOTE_ADDR'];
    if(!isset($_POST['paese']))
    {
    echo "Devi scegiere cosa votare<br/>";
    echo"<a href="sondaggi1.php">Torna al sondaggio</a>";
    }
    if(isset($_POST['paese']))
    $paese = $_POST['paese'];
    else
    exit;
    if(!in_array($paese, array('italia','spagna','portogallo','argentina','inghilterra')))
    exit;
    //inserimento e controllo ip utenti
    $query=mysql_query("INSERT INTO ip_utenti (ip_utenti) VALUES ('$ip')")or die ( "HAI GIA VOTATO ");
    //fine inserimento e controllo ip
    $risultati_mysql=mysql_query("SELECT * FROM nomi ");
    while ($riga1=mysql_fetch_array($risultati_mysql))
    {
    $id=$riga1["$paese"];
    $idnuovo=($id + 1);
    }
    $sql="UPDATE nomi SET $paese='$idnuovo'";
    if(!mysql_query($sql)){
    echo "Errore impossibile votare";
    echo "<script>
    function redirect(){
    window.location.replace("scegli.htm");
    }
    setTimeout("redirect()", 2000);
    </script>";
    exit();
    }else{
    echo "Grazie per il tuo Voto ";
    echo "<script>
    function redirect(){
    window.location.replace("guarda.php");
    }
    setTimeout("redirect()",800);
    </script>";

    }
    [/php]

    Cosa ne pensi?
    Tanti saluti.
    Ciao! Grazie.