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

    Sondaggio con voto unico

    Salve a tutti, ho una pagina web con una classifica dove ogni utente può dare un solo voto fino al sabato, per poi poter votare di nuovo.
    Il voto viene espresso da utenti registrati dove la registrazione può essere fatta anche tramite facebook.
    Ho capito che devo prenderle l'id dell'utente ma non so però quale strada dovrei seguire:
    usare i cookies, o le variabili di sessione, oppure sfruttare il database.
    Spero che qualcuno più esperto di me possa consigliarmi al meglio.

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Sicuramente il db. Salvati la data di voto e id utente...quando si cerca di votare confronti la data di voto (se c'è) con quella attuale

  3. #3
    Avrei pensato di riservare i voti solo agli utenti facebook twitter o g+ evitando cosi un db esterno, non mi serve e inoltre se uno si registra, mi complico la vita con un controllo tramite mail ecc... mentre con i social si è già presenti, quindi se è possibile escludere il db.
    Altrimenti se postessi creare una tabella che ogni voto mi crea un array con gli id utenti e a fine settimana si cancella, ma non so vorrei fare qualcosa più semplice possibile.

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Non è che sia una cosa complicatissima:
    Una tabella con
    id - facebook_id ì/g+_id - data_voto

    Quando uno vota:
    - verifichi se c'è una riga con l'id utente (fb o g+)
    - se non c'è procedi al voto ed aggiungi una riga con nella tabella con la data attuale. fine
    - se c'è vedi se la data è precedente al sabato appena passato (vedi le funzioni date() di php)
    - si: procedi al voto ed aggiorni la riga della tabella con la data attuale
    - no: errore, non puoi votare

  5. #5
    la tabella in cui registri i voti espressi deve avere (almeno) tre campi

    id_sondaggio - id_utente - voto_espresso

    La query
    codice:
    SELECT COUNT(*) 
    FROM table 
    WHERE 
        id_sondaggio=[id del sondaggio che si vuol verificare il voto] 
        AND 
        id_utente=[id del soggetto loggato che, generalmente, viene messo in una variabile di sessione]
    Se questa query ti ritorna un valore >=1 significa che l'utente ha già votato.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  6. #6
    Grazie a tutti, ho costruito una tabella con id utente e data voto dove verifico id e data, penso sia quella più professionale anche se più dispendiosa come risorse

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.