ciao a tutti è giorni che cerco di risolvere questo problema ma niente, Ho creato un sito a un cliente: un utente si registra e dopo il login può ottenere un punto cliccando su un banner ( il punteggio viene visualizzato nella Home), fino a qui tutto ok, ma il problema è che a volte vengono aggiunti punti ad altri utenti o vengono aggiunti prima dopo pochi minuti dal click precedente (dovrebbero passare 24 ore)
La tabella utenti è:
Codice:
CREATE TABLE utenti (
 id INT UNSIGNED NOT NULL AUTO_INCREMENT,
 name VARCHAR(30) NOT NULL,
 surname VARCHAR(30) NOT NULL,
 username VARCHAR(30) NOT NULL,
 password CHAR(32) NOT NULL,
 indirizzo VARCHAR( 100 ) NOT NULL,
 occupazione VARCHAR( 100 ) NOT NULL,
 temp SET( '0', '1' ) NOT NULL,
 regdate VARCHAR( 11 ) NOT NULL,
 uid VARCHAR( 32 ) NOT NULL,
 PRIMARY KEY(id),
 INDEX(username, password)
);
La tabella points nel quale vengono aggiunti punti e la date:

Codice:
CREATE TABLE points (
id VARCHAR( 32 ) NOT NULL,
value INT UNSIGNED NOT NULL,
date TIMESTAMP NOT NULL,
FOREIGN KEY (id) REFERENCES utenti(uid)
)
La prima data viene aggiunta alla registrazione:

Codice:
<?php

function reg_register($data){
    //registro l'utente
    global $_CONFIG;
 
    $id = reg_get_unique_id();
    mysql_query("
    INSERT INTO ".$_CONFIG['table_utenti']."
    (name, surname, indirizzo, occupazione, username, password, temp, regdate, uid)
    VALUES
    ('".$data['name']."','".$data['surname']."','".$data['indirizzo']."',
    '".$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),
    '1', '".time()."','".$id."')");
 


    //Decommentate la riga seguente per testare lo script in locale
    //echo "<a href=\"http://localhost/Articoli/autenticazione/2/scripts/confirm.php?id=".$id."\">Conferma</a>";
    if(mysql_insert_id()){
         
		 if (mysql_query('INSERT INTO ' . $_CONFIG['table_points'] . ' (id, value, date) VALUES (\'' . $id . '\', 0, NOW())'))																									 
																														 
			return reg_send_confirmation_mail($data['mail'], "prizeX@register", $id);
            else
                    return REG_POINTS_FAILED;
    }else return REG_FAILED;
}
e questa è la funzione che dovrebbe aggiungere punti se la data nella tabella è precedente di 24 ore:

Codice:
<?php
include_once("autenticazione/include/config.php");
include_once("autenticazione/include/auth.lib.php");
list($status, $user) = auth_get_status();
if($status == AUTH_LOGGED){

mysql_query('UPDATE utenti,points SET points.value=points.value+1, points.date=NOW() WHERE points.id=utenti.uid AND TO_DAYS(TIMEDIFF(NOW(), points.date)) >= 1');

}
	?>
Io non so più cosa fare, ho provato di tutto ma niente, non so dove sbaglio!

Questo è il manuale da cui ho preso le funzione time ecc...
http://dev.mysql.com/doc/refman/5.1/...functions.html