Assegnazione punto giornaliero

  • Creatore Discussione Creatore Discussione Vallo92
  • Data di inizio Data di inizio

Vallo92

Nuovo Utente
30 Set 2014
8
0
1
Salve, avrei un problema che non riesco a risolvere.
Vorrei creare un sistema che aggiunge un punto (quindi un +1 alla variabile punti salvata nel database MySQL di ogni utente) ad ogni utente che effettua un visita ogni giorno).
Quindi se l'utente è loggato e effettua una visita al sito per la prima volta durante un giorno, gli verrà regalato un punto. Se in un determinato giorno l'utente ha già ricevuto il suo punto in regalo allora non le verranno più aggiunti punti fino alla mezzanotte dello stesso giorno.

Potete darmi una mano sopratutto per creare un sistema sicuro, in modo che gli utenti non possano raggirare il sistema e ottenere più punti in regalo durante l'arco di una giornata?


Vi ringrazio anticipatamente.
 
Ciao,
Io farei così:
Per prima cosa, aggiungerei una colonna alla tabella contenente gli utenti, che dovrà contenere la data dell'ultimo accesso, magari in formato Ymd (anno,mese,giorno).
Dopodichè, ogni volta che un utente esegue il login, lancerei un codice come questo:
PHP:
<?php
$connessione = mysqli_connect(); //aggiungi i parametri di connessione al database
$selezione = mysqli_query($connessione,"SELECT ultimoaccesso,punteggio FROM tabellautenti WHERE username='usernamedellutenteloggato'"); //modifica la query in base alla configurazione del tuo database
$assoc = mysqli_fetch_assoc($selezione);
if($assoc['ultimoaccesso']!=date("Ymd")){
$più = $assoc['punteggio']+1;
mysqli_query($connessione,"UPDATE tabellautenti SET ultimoaccesso=".date("Ymd").", punteggio=".$più." WHERE username='usernamedellutenteloggato'"); //modifica la query in base alla configurazione del tuo database

}
?>
 
Grazie mille per la risposta!
Una domanda veloce: Il tuo codice andrebbe ad eseguirsi tutte le volte che un utente effettua il login. Ma se l'utente rimane connesso (ad esempio il classico bottone "ricordami") come posso fare in modo che si esegua ugualmente il controllo?
 
Potresti creare un file chiamato aggiungi.php e inserire il codice per aggiungere il punteggio, e poi richiederlo in ogni pagina dedicata agli utenti registrati:
PHP:
<?php
require 'aggiungi.php';
?>
Ciao :)
 

Discussioni simili