Salve,
vorrei sapere come poter gestire un'intervallo di 24 ore, nel senso:
1.invio una query con ip e data(timestamp)
2.controllo che prima di inserire la prossima query su quell'ip siano passate 24 ore.
che controlli sul timestamp devo fare?
Salve,
vorrei sapere come poter gestire un'intervallo di 24 ore, nel senso:
1.invio una query con ip e data(timestamp)
2.controllo che prima di inserire la prossima query su quell'ip siano passate 24 ore.
che controlli sul timestamp devo fare?
Il timestamp è il numero di secondi passato dalla unix epoch (1 gennaio 1970). Per controllare che siano passate almeno 24 ore basta che controlli la differenza fra i due timestamp (deve essere maggiore di 60x60x24).
consi fungerebbe?
è corretto un controllo del genere o mi sono perso qualcosa?Codice PHP:
---------------------------------------------------------------
$scadenza_tempo = mktime(date("H")+24,date("i, s, m, d, Y"));
//ciò viene inserito nel cookie
---------------------------------------------------------------
//qui supponiamo che ho passato il valore memorizzato nel cookie a $scadenza_tempo.
$tempo_corrente = time();
if($tempo_corrente > $scadenza_tempo)
echo "24 ore passate"
else
echo "24 ore non passate"
[QUOTE]Originariamente inviato da XvOg1
La chiamata a mktime() è errata: date(...) ritorna una stringa unica, non una lista di parametri. In realtà la cosa sarebbe molto più semplice se NON usi mktime():Codice PHP:
---------------------------------------------------------------
$scadenza_tempo = mktime(date("H")+24,date("i, s, m, d, Y"));
//ciò viene inserito nel cookie
Codice PHP:
$scadenza_tempo = time() + 60*60*24;
quindi ciò è diverso?
eppure stampa la stessa stringaCodice PHP:
//+24 ore
$scadenza_tempo = mktime(date("H")+24,date("i, s, m, d, Y"));
//+24 ore
$scadenza_tempo1 = time() + 60*60*24;
echo $scadenza_tempo."
";
echo $scadenza_tempo1;
![]()
E' vero, carajo! Comunque è un caso fortuito, usando il tuo mktime() mi genera un warning:
Indagando, ho scoperto che qualsiasi argomento di mktime() è opzionale e che se si specifica un valore non valido (come nel tuo esempio) viene considerato il valore di default, cioè la data attuale. Ergo:codice:PHP Notice: A non well formed numeric value encountered in /home/nicola/tmp/prova2.php on line 3
Codice PHP:
// Questo comando
$scadenza_tempo = mktime(date("H")+24,date("i, s, m, d, Y"));
// è funzionalmente equivalente al seguente comando (che non genera warnings)
$scadenza_tempo = mktime(date("H")+24);
grazie per il warning, non ho il notice abilitato.
comunque grazie per il chiarimento.
ciao