Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    9

    limite di 12 ore per DB query

    Questo è un sistema di voto che al momento ad ogni click esegue la query e aggiunge 2500 ad una determinata colonna ,come faccio a impostare che lo faccia solo ogni 12 ore?

    <?php

    function vote(){
    global $db,$USER;

    $template = new template();
    define("URL_" ,"http://www.rivaltoplist.com/system/index.php?page=inVote&id=UnFVOTgxM1ltSnRleQ==");
    $db->query("UPDATE ".USERS." SET darkmatter=darkmatter+2500 WHERE id =".$USER['id']."");
    $template->message("Thank you for your vote",URL_,0);
    }
    ?>

  2. #2
    Ti dò una possibile soluzione: potresti salvare in una tabella a parte l'indirizzo IP di chi vota e il timestamp. Poi da PHP controlli se il voto è stato già espresso entro 12 ore: se sì, visualizzi un messaggio del tipo: "Tra un voto e l'altro devono passare 12 ore"; sennò esegui la query del voto.

    Spero di esserti stato di aiuto, ciao!

  3. #3
    Se il voto è appannaggio solo degli utenti registrati, salvi data e ora di votazione nel db in modo da poter fare il confronto alla prossima votazione (se > di 12 ore, ok rivota pure).
    Se il voto è per tutti, non hai altra scelta che usare i cookie.
    L'indirizzo IP può cambiare.

  4. #4
    Giusta osservazione quella di Dirk Pitt, aggiungo solo che a quel punto bisognerebbe aggiungere un ulteriore controllo perché l'utente potrebbe tranquillamente rifiutare i cookie, e in questo caso gli si dovrebbe negare il voto

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    9
    è legato a utenti registrati,quindi username e id.
    quindi salvataggio su db creando una tabella o colonna registrando il tempo del voto username o id mi sembra di capire.

  6. #6
    Originariamente inviato da Simo990
    Giusta osservazione quella di Dirk Pitt, aggiungo solo che a quel punto bisognerebbe aggiungere un ulteriore controllo perché l'utente potrebbe tranquillamente rifiutare i cookie, e in questo caso gli si dovrebbe negare il voto
    Non hai nessun altro possibile controllo, o meglio ogni contorllo è bypassabile
    quindi salvataggio su db creando una tabella o colonna registrando il tempo del voto username o id mi sembra di capire.
    E capisci bene: salvi nel db in un campo timestamp data e ora, poi fai il confronto tra data/ora salvata e data/ora attuale.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    9
    Ok grazie,adesso il peggio per me è farlo :-)

  8. #8
    Con questa classe ad esempio puoi fare dei confronti di date, dopo aver opportunamente manipolato la data.

  9. #9
    Altrimenti potresti memorizzare l'Unix timestamp, così da controllare i secondi trascorsi senza scomodare le date (12 ore = 43200 secondi)

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.