timestamp! ca bug !!

timestamp! ca bug !! - PHP - Programmation

Marsh Posté le 06-01-2003 à 16:11:42    

c'est bien simple je fait une requete toute conne
 

       $temp = time()+1800;
        $s="insert into session (pseudo, tps_connect) values ('$pseudo', '$temp')";


 
ca m'insere bien le pseudo mais en $temp ca me met
 
000000000000 !
 
Je suis en timestamp(12) je sais pas pk ca fait ca :cry:

Reply

Marsh Posté le 06-01-2003 à 16:11:42   

Reply

Marsh Posté le 06-01-2003 à 16:17:43    

chacal_one333 a écrit :

c'est bien simple je fait une requete toute conne
 

       $temp = time()+1800;
        $s="insert into session (pseudo, tps_connect) values ('$pseudo', '$temp')";


 
ca m'insere bien le pseudo mais en $temp ca me met
 
000000000000 !
 
Je suis en timestamp(12) je sais pas pk ca fait ca :cry:  


 
http://www.mysql.com/doc/en/DATETIME.html
Regarde le TIMESTAMP(12) à quoi ça correspond. Le timestamp retourné par time() est en fait un nombre très long correspondant à un truc genre le nombre de secondes depuis le 1er janvier 1970 ou un truc du style. Bref, en tant que tel, je l'utilise jamais mais y a plein de fonctions PHP pour te convertir le résultat de time() vers un nombre exploitable par MySQL. Du genre strftime() par exemple.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-01-2003 à 16:20:23    

:heink:  
 
c'est juste pour un timeout d'un compteur de personne !
jvet pas de mktime !
jveux juste qu'au bout de 1800s ca declanche un truc !
mais si je n'arrive pas a inserer le 1800 dans la table ben ..

Reply

Marsh Posté le 06-01-2003 à 16:27:35    

chacal_one333 a écrit :

:heink:  
 
c'est juste pour un timeout d'un compteur de personne !
jvet pas de mktime !
jveux juste qu'au bout de 1800s ca declanche un truc !
mais si je n'arrive pas a inserer le 1800 dans la table ben ..


 
...
On la refait :

Citation :

time()
Retourne le timestamp UNIX actuel.  
 
int time (void)  
time() retourne l'heure courante, mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT).  


 

Citation :


TIMESTAMP(12)  YYMMDDHHMMSS


 
Donc si tu lui fais ton insert cash sur ta valeur (avec ou sans 1800 ajoutés, on s'en fout), tu vas insérer des secondes au lieu d'un format type YYMMDDHHMMSS. Comme MySQL reçoit des trucs qu'il ne comprend pas, bin il part en vrille et fout un gros 000000000000 dans le champ. C'est tout.
Faut donc faire un $valeur = strftime("%y%m%d%H%M%S", $temp) et insérer $valeur en base.
 
Capice ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-01-2003 à 16:43:41    

oué m'enfin j'ai fait ca :
 

Code :
  1. $temp = time()+1800;
  2.         $valeur = strftime("%y%m%d%H%M%S", $temp);
  3.         $s="insert into session (pseudo, tps_connect) values ('$pseudo', '$valeur')";

et la il ne m'insere rien du tout :(

Reply

Marsh Posté le 06-01-2003 à 16:51:51    

je fais ça pour inserer un timestamp de session :
 

Code :
  1. $date_tab = getdate();
  2. $now = mktime($date_tab[hours], $date_tab[minutes], $date_tab[seconds], $date_tab[mon], $date_tab[mday], $date_tab[year]);
  3. $expire = ($now+3900);


 
et j'insere $expire ds la base (14 chiffres).

Reply

Marsh Posté le 06-01-2003 à 16:52:10    

a si ca y est :)
 
20030106172051
 
Voila j'ai ca
un derniere question
est ce que :

Code :
  1. mysql_query("delete from session where ".$tps_connect."<".time());

m'effacera bien toute les connection innactive depuis 1800 seconde?

Reply

Marsh Posté le 06-01-2003 à 17:00:25    


dou tu sors ces idées  :lol: , tu pourrais faire un effort pr y arrriver sans aide  
 :hello:

Reply

Marsh Posté le 06-01-2003 à 17:02:15    

chacal_one333 a écrit :

a si ca y est :)
 
20030106172051


 
Bin c'est un TIMESTAMP(14), ça... :p
 

chacal_one333 a écrit :


Voila j'ai ca
un derniere question
est ce que :

Code :
  1. mysql_query("delete from session where ".$tps_connect."<".time());

m'effacera bien toute les connection innactive depuis 1800 seconde?


 
Bin a priori ui.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-01-2003 à 17:02:32    

bah pour moi, à chaque appel d'une page je check le timestamp de la session (que j'envoie ds l'url ou par formulaire) et je le compare au timestamp du serveur. si il est < j'update le timestamp de session sinon je redirige vers une page d'avertissement ("session expirée !" ).

Reply

Marsh Posté le 06-01-2003 à 17:02:32   

Reply

Marsh Posté le 06-01-2003 à 17:06:14    

chakal > jutilisais un int (4octects) pour sotcker le time()+1800

Reply

Marsh Posté le 06-01-2003 à 17:06:21    

beleg a écrit :


dou tu sors ces idées  :lol: , tu pourrais faire un effort pr y arrriver sans aide  
 :hello:  

c'est toi qui me la dit :hello:

Reply

Marsh Posté le 06-01-2003 à 17:07:39    

Citation :

une petite routine de menage  
"delete * from online where finconnection < ".time()
 
ca vire ts les gens qui nont rien fait depuis 1800 secondes.

:whistle:

Reply

Marsh Posté le 06-01-2003 à 17:08:17    

m'enfin bon merci taiche :)

Reply

Marsh Posté le 06-01-2003 à 17:11:16    

chacal_one333 a écrit :

c'est toi qui me la dit :hello:  


 
je sais  :whistle: , faudrait donc que tu convertisses ton time() au meme format que ce quil ya ds la base pr que la comparaison seffectue.
 
mysql_query("delete from session where tps_connect <".time());

Reply

Marsh Posté le 06-01-2003 à 17:30:44    

beleg a écrit :


 
je sais  :whistle: , faudrait donc que tu convertisses ton time() au meme format que ce quil ya ds la base pr que la comparaison seffectue.
 
mysql_query("delete from session where tps_connect <".time());

[:totoz] et merdeeee

Reply

Marsh Posté le 06-01-2003 à 17:33:02    

donc un ptit
 
$valeur2 = strftime("%y%m%d%H%M%S", time()) et c'est bon :)

Reply

Marsh Posté le 06-01-2003 à 17:52:46    

:non:  ...  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
si ca doit etre bon

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed