Probleme avec la fonction now()

Questions sur le développement PHP.

Modérateur : Modérateurs

Avatar de l’utilisateur
onags
Membre ancien
Membre ancien
Messages : 115
Inscription : dim. 14 mars 2004, 21:55

Messagepar onags » sam. 06 nov. 2004, 17:19

Bonjour,

J'ai un probleme avec la fonction NOW(), c'est des fois ca marche et des fois ca ne marche pas.

J'explique ma situtation

Tout d'abors ma config du serveur : Apache/1.3.31 (Win32) PHP/4.3.9

Le script sert a inserer ou updater l'enregistrement d'un compte utilisateur afin d'y rajouter ou modifier la date pour ainsi delimiter la duree d'un session sur un enregistrement.

donc l'idee c'est que j ai un table dans laquelle j ai la colonne Date de type : timestamp(14) Null et defaut NULL,
ce que j essaye de faire avec la fonction now() c'est quand j insert ou update un nouvelle enregistrement rendu a Date je mets ca :

Code : Tout sélectionner

Date=now()+2000

donc +2000 pour y rajouter un temps de session qui sera verifier par la suite par la page securisé.

Mon proble c'est que desfois lors de l insert ou l update quand je verifie le champ Date par phpmyadmin je ne trouve que des 0000000000 mais ATTENTION des fois ca marche comme sur des roulettes donc je recois exactement la date actuelle + 2000 !!!

Et ce qui est le plus bizzar c'est que si je modifie le +2000 dans ma requette SQL par une variable qui contient 2000 ex:

Code : Tout sélectionner

$durre_session=2000;.....   Date=now+".$durre_session."

et bien ca remarche mais ca fait le meme probleme c'est aussi avec ca des fois ca marche mais apres un temps ca ne remarche plus !! Et ainsi de suite en remettant le +2000.


Voila, si vous avez une idee sur ce probleme.
MErci
>>>>>>>>>>>>>>>><u>ma config</u><<<<<<<<<<<<<<<<<br>Apache/2.0.48 (Win32) PHP/4.3.4 mod_gzip/2.0.26.1a<br>>>>>>>><img src='http://www.vente.sytes.net/images/omptim.bmp.gif' border='0' alt='user posted image' /><<<<<<<

Avatar de l’utilisateur
karrakis
Membre ancien
Membre ancien
Messages : 444
Inscription : lun. 26 avr. 2004, 12:29
Localisation : Paris
Contact :

Messagepar karrakis » sam. 06 nov. 2004, 18:18

As tu essayé en protégeant 2000 avec des ' .
comme :
now()+'2000'
ou
now()+'$duree_session' ?

Avatar de l’utilisateur
onags
Membre ancien
Membre ancien
Messages : 115
Inscription : dim. 14 mars 2004, 21:55

Messagepar onags » sam. 06 nov. 2004, 18:34

je viens d'essayer maintenant.

A premiere vu le probleme ne re-apparait pas, mais attendant voir si c'est permenent.
voila la variable et la requette sql :

Code : Tout sélectionner

$duree_sess = '2000'; // La dure de session : 20 minutes

$sql = "INSERT INTO MaTable VALUES('$variable','now()+".$duree_sess."')";



MErci pour ta reponse
>>>>>>>>>>>>>>>><u>ma config</u><<<<<<<<<<<<<<<<<br>Apache/2.0.48 (Win32) PHP/4.3.4 mod_gzip/2.0.26.1a<br>>>>>>>><img src='http://www.vente.sytes.net/images/omptim.bmp.gif' border='0' alt='user posted image' /><<<<<<<

Avatar de l’utilisateur
onags
Membre ancien
Membre ancien
Messages : 115
Inscription : dim. 14 mars 2004, 21:55

Messagepar onags » sam. 06 nov. 2004, 18:50

Et bien non ca ne marche toujours pas !!!!

C'est vraiment la meme chose desfois ca marche mais des fois ca me mets des 0000000. !!!!
>>>>>>>>>>>>>>>><u>ma config</u><<<<<<<<<<<<<<<<<br>Apache/2.0.48 (Win32) PHP/4.3.4 mod_gzip/2.0.26.1a<br>>>>>>>><img src='http://www.vente.sytes.net/images/omptim.bmp.gif' border='0' alt='user posted image' /><<<<<<<

Avatar de l’utilisateur
apis
Pilier de forum
Pilier de forum
Messages : 1107
Inscription : sam. 21 févr. 2004, 14:50
Localisation : Lyon
Contact :

Messagepar apis » lun. 08 nov. 2004, 20:58

pour faire fonctionner la fonction now, je crois que le type de la colonne doit etre timestamp

et sinon, tu peux aussi attribuer a la colonne un type timestamp laisser quand tu insers la colonne de vide, et le champ se remplira tout seul.
Nekralium Admin: Au jour du jugement, la plume du savant pèsera autant que l'épée du guerrier.

Avatar de l’utilisateur
karrakis
Membre ancien
Membre ancien
Messages : 444
Inscription : lun. 26 avr. 2004, 12:29
Localisation : Paris
Contact :

Messagepar karrakis » mar. 09 nov. 2004, 9:07

et en remplaçant now() + 2000 par

Code : Tout sélectionner

 UNIX_TIMESTAMP(DATE_ADD(now(), INTERVAL 2000 SECOND)); ?


Revenir vers « PHP »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité