Pagina 2 di 3 PrimoPrimo 123 UltimoUltimo
Visualizzazione risultati 31 fino 60 di 61

Discussione: Codice per Sondaggio

  1. #31
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Nono, andava bene la UPDATE di prima :)

    per come lo hai strutturato, nella tabella viene salvata una sola riga. Quindi devi fare soltanto una INSERT all'inizio. Poi, ad ogni voto, fai l'UPDATE per incrementare i voti.

    Non devi inserire una riga ogni voto.

    Ciao!
    Perciò lo tolgo?

    Ho guardato nel db SQL ma non c'è più il codice che avevo messo

  2. #32
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    È normale che non c'é: quello era soltanto un comando per aggiungere un record nella tabella.

    Ripristina la pagina come era all'inizio. Poi vediamo se funziona, o il perché non funziona.

    Ciao!

  3. #33
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    È normale che non c'é: quello era soltanto un comando per aggiungere un record nella tabella.

    Ripristina la pagina come era all'inizio. Poi vediamo se funziona, o il perché non funziona.

    Ciao!
    Puoi vederla la home

    EDIT:
    Questo è il nuovo codice

    Codice PHP:
    <?php
    $q
    ="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    //faccio passo passo poi puoi semplificare
    $tot=0;//metto il totale a 0
    //e calcolo
    foreach($riga as $chiave => $valore) {
    ${
    $chiave}=$valore;//valore del campo
    $tot=$tot+$valore;//faccio il totale
    }
    //se $tot > 0 calcolo la percentuale (uso la percentuale senza virgole numero intero)
    if($tot>0){//per evitare divisione per zero
    $internet= (int)($internet/$tot*100); $internet_pos=$internet-100;
    $depliant= (int)($depliant/$tot*100); $depliant_pos=$depliant-100;
    $casualmente= (int)($casualmente/$tot*100); $casualmente_pos=$casualmente-100;
    $amici_o_conoscenti= (int)($amici_o_conoscenti/$tot*100); $amici_pos=$amici_o_conoscenti-100;
    $giornali_o_televisione= (int)($giornali_o_televisione/$tot*100); $giornali_pos=$giornali_o_televisione-100;
    }
    else {
    $internet= 0; $internet_pos=-100;
    $depliant= 0; $depliant_pos=-100;
    $casualmente= 0; $casualmente_pos=-100;
    $amici_o_conoscenti= 0; $amici_pos=-100;
    $giornali_o_televisione= 0; $giornali_pos=-100;
    }
    $risultato=mysql_query("INSERT INTO sondaggio(internet,depliant,casualmente,amici_o_conoscenti,giornali_o_televisione)
    VALUES('
    $internet','$depliant','$casualmente','$amici_o_conoscenti','$giornali_o_televisione')");
    ?>
    <p style="text-align:center; margin-top:-5px; margin-bottom:30px; color:#008040;">Come hai conosciuto i prodotti Akuna?</p>

    <div style="margin-top:-10px; margin-left:3px; text-align:left;">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

    <div class="fra">
    <input type="radio" name="voto" value="internet"> Internet
    <br />
    <div class="a" style="background-position:<?php echo $internet_pos;?>px"></div><div class="percentuale"><?php echo $internet;?>%</div>
    <br />
    <input type="radio" name="voto" value="depilant"> Depliant
    <br />
    <div class="a" style="background-position:<?php echo $depliant_pos;?>px"></div><div class="percentuale"><?php echo $depliant;?>%</div>
    <br />
    <input type="radio" name="voto" value="casualmente"> Casualmente
    <br />
    <div class="a" style="background-position:<?php echo $casualmente_pos;?>px"></div><div class="percentuale"><?php echo $casualmente;?>%</div>
    <br />
    <input type="radio" name="voto" value="amici_o_conoscenti"> Amici o conoscenti
    <br />
    <div class="a" style="background-position:<?php echo $amici_pos;?>px"></div><div class="percentuale"><?php echo $amici_o_conoscenti;?>%</div>
    <br />
    <input type="radio" name="voto" value="giornali_o_televisione"> Giornali o televisione
    <br />
    <div class="a" style="background-position:<?php echo $giornali_pos;?>px"></div><div class="percentuale"><?php echo $giornali_o_televisione;?>%</div>
    </div><!-- fra -->
    <div style="margin-top:30px; text-align:center;"><input type="submit" name="puls_vota" value="Vota" class="manina-guest"></div>
    </form>
    <?php
    if(isset($_POST['puls_vota'])) {
    $voto=htmlspecialchars($_POST['puls_vota']);
    $q="UPDATE sondaggio SET $voto= $voto + 1 WHERE id=1";
    if(
    mysql_query($q)) {
    echo
    "<div style=\"margin-top:12px;font-size:16px; color:#0000ff; text-align: center;\">Grazie per aver votato!</div>";
    echo
    "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    else {
    echo
    "<div style=\"margin-top:12px;font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    echo
    "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    ?>
    </div><!-- div style -->
    Ultima modifica di gruppoalveo : 11-01-2013 alle ore 01.16.38 Motivo: aggiunta

  4. #34
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Dopo:
    Codice PHP:
    $risultato = mysql_query($q);
    Aggiungi:
    Codice PHP:
    $riga=mysql_fetch_array($risultato);
    EDIT:

    ah, ed elimina:

    Codice PHP:
    $risultato=mysql_query("INSERT INTO sondaggio(internet,depliant,casualmente,amici_o_conoscenti,giornali_o_televisione)
    VALUES('
    $internet','$depliant','$casualmente','$amici_o_conoscenti','$giornali_o_televisione')");
    E risposta sopra la parte dell'UPDATE: come era all'inizio, era circa corretto :) ...era corretto aparte la mysql_real_escape_string().


    Ciao!
    Ultima modifica di alemoppo : 11-01-2013 alle ore 01.27.33

  5. #35
    Guest

    Predefinito

    Fatto, non capisco come fa ad inserire i dati nella tabella, poi ho visto che nella tabella si aggiornano sottoforma di numero di votazioni, però ad ogni voto la tabella si allunga in verticale, no si può evitare?

    Altra cosa, nella home la somma delle percentuali non arriva a 100% ma a circa 44%

    Codice PHP:
    <?php
    $q
    ="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    $riga=mysql_fetch_array($risultato);
    //faccio passo passo poi puoi semplificare
    $tot=0;//metto il totale a 0
    //e calcolo
    foreach($riga as $chiave => $valore) {
    ${
    $chiave}=$valore;//valore del campo
    $tot=$tot+$valore;//faccio il totale
    }
    //se $tot > 0 calcolo la percentuale (uso la percentuale senza virgole numero intero)
    if($tot>0){//per evitare divisione per zero
    $internet= (int)($internet/$tot*100); $internet_pos=$internet-100;
    $depliant= (int)($depliant/$tot*100); $depliant_pos=$depliant-100;
    $casualmente= (int)($casualmente/$tot*100); $casualmente_pos=$casualmente-100;
    $amici_o_conoscenti= (int)($amici_o_conoscenti/$tot*100); $amici_pos=$amici_o_conoscenti-100;
    $giornali_o_televisione= (int)($giornali_o_televisione/$tot*100); $giornali_pos=$giornali_o_televisione-100;
    }
    else {
    $internet= 0; $internet_pos=-100;
    $depliant= 0; $depliant_pos=-100;
    $casualmente= 0; $casualmente_pos=-100;
    $amici_o_conoscenti= 0; $amici_pos=-100;
    $giornali_o_televisione= 0; $giornali_pos=-100;
    }

    if(isset(
    $_POST['puls_vota'])) {
    $voto=htmlspecialchars($_POST['voto']);
    $q="UPDATE sondaggio SET $voto= $voto + 1 WHERE id=1";
    if(
    mysql_query($q)) {
    echo
    "<div style=\"margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie per aver votato!</div>";
    echo
    "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    echo
    "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    ?>
    <p style="text-align:center; margin-top:-5px; margin-bottom:30px; color:#008040;">Come hai conosciuto i prodotti Akuna?</p>

    <div style="margin-top:-10px; margin-left:3px; text-align:left;">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    ...
    Ultima modifica di gruppoalveo : 11-01-2013 alle ore 11.37.49

  6. #36
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Citazione Originalmente inviato da gruppoalveo Visualizza messaggio
    Fatto, non capisco come fa ad inserire i dati nella tabella
    Inserisce i dati con la UPDATE. Incrementa di uno il campo $voto passato tramite il form.
    Citazione Originalmente inviato da gruppoalveo Visualizza messaggio
    poi ho visto che nella tabella si aggiornano sottoforma di numero di votazioni, però ad ogni voto la tabella si allunga in verticale, no si può evitare?
    la tabella si allunga, perché ieri nello script avevi aggiunto
    Codice PHP:
    $risultato=mysql_query("INSERT INTO sondaggio(internet,depliant,casualmente,amici_o_conoscenti,giornali_o_televisione)
    VALUES('
    $internet','$depliant','$casualmente','$amici_o_conoscenti','$giornali_o_televisione')");
    Puoi cancellare tutte le righe della tabella, a parte quella con id=1. Perché proprio quella con id=1? Perché lo script prende in considerazione soltanto la riga con id=1:
    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    Codice PHP:
    $q="UPDATE sondaggio SET $voto= $voto + 1 WHERE id=1";
    Citazione Originalmente inviato da gruppoalveo Visualizza messaggio
    Altra cosa, nella home la somma delle percentuali non arriva a 100% ma a circa 44%
    Non capisco infatti il perché di tutti i calcoli sotto. Basterebbe fare
    Codice PHP:
    $voce = ($voce/100)*$tot;
    Per ogni voce...

    magari poi usare round() per evitare molte cifre dopo la virgola...

    Comunque capisco che lo script non lo hai fatto te, ma le barre, da quel che vedo, dovrebbero variare la loro lunghezza in proporzione alla percentuale... ma non lo fanno

    Ciao!

  7. #37
    Guest

    Predefinito

    Ho sistemato la tabella, continua a dare errore se premo Vota senza aver selezionato una risposta, prova nella Home

  8. #38
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Beh, è normale, perché non invii nessun dato, quindi lui fa la query ma non trova nulla.

    Sostituisci:

    Codice PHP:
    if(isset($_POST['puls_vota'])) {
    con:
    Codice PHP:
    if(isset($_POST['voto'])) {
    EDIT:
    ah, invece di "htmlspecialchars", scrivi "mysql_real_escape_string". Quella funzione è fatta a posta per prevenire sql injection.

    Ciao!
    Ultima modifica di alemoppo : 11-01-2013 alle ore 18.41.00

  9. #39
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Beh, è normale, perché non invii nessun dato, quindi lui fa la query ma non trova nulla.

    Sostituisci:

    Codice PHP:
    if(isset($_POST['puls_vota'])) {
    con:
    Codice PHP:
    if(isset($_POST['voto'])) {
    EDIT:
    ah, invece di "htmlspecialchars", scrivi "mysql_real_escape_string". Quella funzione è fatta a posta per prevenire sql injection.

    Ciao!
    Ho messo così:
    Codice PHP:
    $voto=mysql_real_escape_string($_POST['voto']);
    Poi ho sostituito puls_vota con voto però non esce più l'avviso "Devi selezionare una risposta!", inoltre se aggiorno la pagine esce "Grazie, il tuo voto è stato inserito!" e aumenta la percentuale a qualche risposta

  10. #40
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Sostituisci il blocco:
    Codice PHP:
    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
    "<div style=\"margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie per aver votato!</div>";
    echo
    "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    echo
    "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    con:

    Codice PHP:
    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
    "<div style=\"margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie per aver votato!</div>";
    // echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Errore nella query!</div>";
    // echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    // echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    Il fatto che se aggiorni incrementa la visita, lo faceva anche prima, immagino.
    La soluzione più semplice, sarebbe quella di far un redirect a se stessa via PHP dopo l'update.

    EDIT: ho commentato i redirect: che scopo hanno?

    Ciao!
    Ultima modifica di alemoppo : 11-01-2013 alle ore 19.05.25

  11. #41
    Guest

    Predefinito

    Lo scopo è ricaricare la pagina e far scomparire gli echo, comunque quello che va meglio è questo perché escono gli avvisi giusti e conteggia i voti, l'unico problema è che non è definito "voto"

    Codice PHP:
    if(isset($_POST['puls_invio'])) {
    $voto=mysql_real_escape_string($_POST['voto']);
    $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1";
    if(
    mysql_query($q)) {
    echo
    "<div style=\"margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie, il tuo voto è stato inserito!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }

    .....

    <
    input type="submit" name="puls_invio" value="Vota" class="manina-guest">

  12. #42
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    L'ultimo che ti ho scritto, decommentando i redirect, che problema da?

    Ciao!

  13. #43
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    L'ultimo che ti ho scritto, decommentando i redirect, che problema da?

    Ciao!
    Continuava a ricaricare la pagina e usciva Errore nella query!

  14. #44
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Anche se è bruttino, dovrebbe funzionare:

    Codice 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
    "<div style=\"margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie, il tuo voto è stato inserito!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    Molto strano che in quello sopra appariva "errore nella query".

    Ciao!
    Ultima modifica di alemoppo : 11-01-2013 alle ore 21.22.10

  15. #45
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Anche se è bruttino, dovrebbe funzionare:

    Codice 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
    "<div style=\"margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie, il tuo voto è stato inserito!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    Molto strano che in quello sopra appariva "errore nella query".

    Ciao!
    Si, adesso funziona e non da errore, questo si può lasciare o va tolto? error_reporting(E_ALL);

    Adesso vorrei mettere anche una sessione che memorizza il suo ip e che un echo gli dice che ha già votato

  16. #46
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Citazione Originalmente inviato da gruppoalveo Visualizza messaggio
    questo si può lasciare o va tolto? error_reporting(E_ALL);
    Puoi anche toglierlo. Se però succedono fatti strani, rimettilo e dovrebbe dare degli errori o warning su cosa sta succedendo (se ci son errori o warning, ovviamente ).

    Citazione Originalmente inviato da gruppoalveo Visualizza messaggio
    Adesso vorrei mettere anche una sessione che memorizza il suo ip e che un echo gli dice che ha già votato
    Dovresti creare una nuova tabella sul database, dove ogni volta salvi l'ip. Occhio che è molto facile eludere questa protezione: è sufficiente (in molti casi ma non in tutti) riavviare il modem.
    Un controllo un pelo più severo, sarebbe quello di incrociare sia il controllo IP, sia settare un cookie sul browser quando vota: anche se cambia ip, ma utilizza lo stesso browser, lo script dovrebbe accorgersene per la presenza del cookie.
    Ovviamente nemmeno questo metodo è sicuro. Anzi, per questa cosa non esiste alcun metodo sicuro.

    Ciao!

  17. #47
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Puoi anche toglierlo. Se però succedono fatti strani, rimettilo e dovrebbe dare degli errori o warning su cosa sta succedendo (se ci son errori o warning, ovviamente ).


    Dovresti creare una nuova tabella sul database, dove ogni volta salvi l'ip. Occhio che è molto facile eludere questa protezione: è sufficiente (in molti casi ma non in tutti) riavviare il modem.
    Un controllo un pelo più severo, sarebbe quello di incrociare sia il controllo IP, sia settare un cookie sul browser quando vota: anche se cambia ip, ma utilizza lo stesso browser, lo script dovrebbe accorgersene per la presenza del cookie.
    Ovviamente nemmeno questo metodo è sicuro. Anzi, per questa cosa non esiste alcun metodo sicuro.

    Ciao!
    Creare una tabella per una cosa del genere mi sembra troppo, piuttosto mettimi un cookie che dura 24 ore

  18. #48
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

  19. #49
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non hai un articolo in italiano?

  20. #50
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    http://www.html.it/pag/16696/mantene...tato-i-cookie/

    Quello che ti avevo linkato sopra, però, era la documentazione ufficiale

    Ciao!

  21. #51
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    http://www.html.it/pag/16696/mantene...tato-i-cookie/

    Quello che ti avevo linkato sopra, però, era la documentazione ufficiale

    Ciao!
    Ho fatto varie ricerche prove ma non me la cavo, a me basterebbe un cookie senza scadenza che semplicemente riconosce il suo ip e non lo fa votare più di una volta, se possibile senza db però se proprio serve...

    EDIT: ho notato che da ancora errore nel foreach, vedi la Home
    Ultima modifica di gruppoalveo : 12-01-2013 alle ore 18.24.48 Motivo: Aggiunta

  22. #52
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Per il cookie, non è possibile farlo durare all'infinito. Però, penso che 5 anni siano sufficienti: dopo 5 anni uno ha anche il PC nuovo :).
    Codice PHP:
    if(isset($_POST['puls_invio']) && !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)) {
    setcookie('votato','qualsiasi cosa',time()*3600*24*30*12*5);
    echo
    "<div style=\"margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie, il tuo voto è stato inserito!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    Invece di "voto" e "qualsiasi cosa" puoi mettere dei nomi che attirano meno l'attenzione, anche se comunque non so quando sia conveniente...

    Per l'errore nel foreach, hai eliminato la riga nella tabella con id=1? (anche perché non fa più nemmeno votare).

    Ciao!

  23. #53
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Per il cookie, non è possibile farlo durare all'infinito. Però, penso che 5 anni siano sufficienti: dopo 5 anni uno ha anche il PC nuovo :).
    Codice PHP:
    if(isset($_POST['puls_invio']) && !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)) {
    setcookie('votato','qualsiasi cosa',time()*3600*24*30*12*5);
    echo
    "<div style=\"margin-bottom:20px;font-size:16px; color:#0000ff; text-align: center;\">Grazie, il tuo voto è stato inserito!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    else {
    echo
    "<div style=\"margin-bottom:20px; font-size:16px; color:#ff0000; text-align: center;\">Devi selezionare una risposta!</div>";
    echo
    "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
    }
    Invece di "voto" e "qualsiasi cosa" puoi mettere dei nomi che attirano meno l'attenzione, anche se comunque non so quando sia conveniente...

    Per l'errore nel foreach, hai eliminato la riga nella tabella con id=1? (anche perché non fa più nemmeno votare).

    Ciao!
    Ho sistemato id=1 vedi nella home, ora da gli array

    EDIT ho messo anche il cookie ma non succede niente, mi fa votare sempre
    Ultima modifica di gruppoalveo : 12-01-2013 alle ore 21.17.52 Motivo: aggiunta

  24. #54
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Per il fatto che vedi gli array, molto probabilmente hai messo un var_dump da qualche parte.

    Per la setcookie() andrebbe messa prima di qualsiasi output html. In effetti mi sembra che prima ci sia tutta la pagina, quindi dovresti spostare quel pezzo sopra in alto nella pagina. Ovviamente poi avrai i problemi degli echo, quindi puoi salvare le stringhe dei messaggi in variabili, da mostrare dopo, nel posto corretto.

    Ciao!

  25. #55
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Per il fatto che vedi gli array, molto probabilmente hai messo un var_dump da qualche parte.

    Per la setcookie() andrebbe messa prima di qualsiasi output html. In effetti mi sembra che prima ci sia tutta la pagina, quindi dovresti spostare quel pezzo sopra in alto nella pagina. Ovviamente poi avrai i problemi degli echo, quindi puoi salvare le stringhe dei messaggi in variabili, da mostrare dopo, nel posto corretto.

    Ciao!
    Quel cookie che fa, non mi sembra che riconosca l'ip

  26. #56
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Il controllo IP non si fa con i cookie. Si devono salvare gli ip in una tabella del database.

    Ciao!

  27. #57
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Il controllo IP non si fa con i cookie. Si devono salvare gli ip in una tabella del database.

    Ciao!
    Perciò come fa a riconoscere l'utente?

  28. #58
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Vedendo che è stato settato un cookie.

    Ciao!

  29. #59
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Vedendo che è stato settato un cookie.

    Ciao!
    Ok, dimmi una cosa: secondo te come mai mi somma le percentuali tot al 46% e non al 100%?

  30. #60
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Prova a modificare la prima query:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    con:

    Codice PHP:
    $q="SELECT internet, depliant, casualmente, amici_o_conoscenti, giornali_o_televisione FROM sondaggio WHERE id=1";
    Come era prima, $tot era +1 perché conteggiava anche l'id. Quindi, potevi anche lasciar la query come era prima, ed eliminare 1 dal totale... Ma penso sia più pulita e chiara questa soluzione .
    (comunque non son sicuro che funzioni correttamente... prova...).

    Ciao!
    Ultima modifica di alemoppo : 13-01-2013 alle ore 01.51.32

Pagina 2 di 3 PrimoPrimo 123 UltimoUltimo

Regole di scrittura

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