Probleme de date chez client mais pas chez moi

Probleme de date chez client mais pas chez moi - PHP - Programmation

Marsh Posté le 16-10-2007 à 11:31:30    

Bonjour,
 
Dans la section admin de mon client, il a la possibilité d'ajouter des neuws avec date.
Mes tests s'averent ok, mais de chez lui, ses essais faussent la date.
Il a un formulaire avec 2 champs: date et news.
Le formulaire est envoyé via POST.
Pour éviter tout un long discours voici le code que je lui ai fait:

Code :
  1. $date=$_POST['date'];
  2. $news=$_POST['news'];
  3. $tp=explode('/',$date);
  4. $datetp=mktime(01,00,00,$tp[1],$tp[0],$tp[2]);
  5. if (($date!=="" ) and ($news!=="" ))
  6. {
  7. $connex=mysql_connect("***","***","***" ) or die("Connexion impossible" );
  8. mysql_select_db("****" ) or die("Connexion impossible" );
  9. $requete=mysql_query("insert into news values ('','$datetp','$news')" );
  10. if (!$requete)
  11.  {
  12.   echo "Erreur à la base Mysql - Recommencez plus tard<br />";
  13.   echo "Merci<br />";
  14.   echo "<a href=\"index.php\">Retour</a>";
  15.  }
  16. else
  17.  {
  18.   echo "Félicitations! La news a été enregistrée<br />";
  19.   echo "<a href=\"../index.php?page=news\">Retour vers les news</a><br />";
  20.   echo "<a href=\"index.php\">Page d'accueil</a>";
  21.  }
  22. mysql_close();
  23. }
  24. else
  25. ......


 
Merci de vos aides
 
 
Je ne sais pas s'il y a un rapport; mais je suis sous mac et lui sous PC.


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 16-10-2007 à 11:31:30   

Reply

Marsh Posté le 16-10-2007 à 11:47:46    

Sans plus de précision sur l'erreur qu'il rencontre, je dirais qu'il ne rentre pas la date au bon format, et comme tu ne fais aucun test sur celui-ci tout se viande ensuite.

 

edit: par ailleurs tu as une faille type "SQL injection" dans ton code

Message cité 1 fois
Message édité par anapajari le 16-10-2007 à 11:48:52
Reply

Marsh Posté le 16-10-2007 à 11:54:17    


Quand il met la date, le timestamp est faux càd que pour ce jour, lors de l'affichage, la date est 16/10/1999 tandis que moi la date est bien 16/10/2007.
 
J'avais d'abord cru que l'erreur venait de lui et je lui ai demandé, et il a bien précisé que non en m'informant qu'il savait bien faire la differrence entre 1999 et 2007...


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 16-10-2007 à 11:55:34    

anapajari a écrit :


edit: par ailleurs tu as une faille type "SQL injection" dans ton code


Le code est nouveau, je n'ai peut-être pas encore tout vérifier.
 
Peux-tu être un peu plus explicite,
merci à toi!


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 16-10-2007 à 11:59:00    

Reply

Marsh Posté le 16-10-2007 à 12:00:06    


j'y étais  :lol:  :jap:


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 16-10-2007 à 14:45:47    

"Quand il met la date"
 
C'est à dire? 06/10/2007? 10/06/2007? 2007106? 10-06-2007?
 
"le timestamp est faux càd que pour ce jour, lors de l'affichage"
 
Représentation interne de la date <> affichage de la date.
 
On se rajoute qq traces pour débugger et voir comment les variables évoluent.

Reply

Marsh Posté le 16-10-2007 à 19:50:02    

Pour être plus explicite, voici le formulaire à partir duquel il insere les news ainsi que la date.
Mais je ne comprends pas, si cela fonctionne quand je me connecte à sa partie admin, pourquoi cela ne fonctionnerait-il pas chez lui quand il me certifie qu'il indique bien la date comme indiquée:
 

Code :
  1. <form action="insertiondesnews.php" method="post">
  2.   <p>
  3.     <label for="date">Date (jj/mm/aaaa) :</label>
  4. <input type="text" id="date" name="date" />
  5.   </p>
  6.   <p>
  7.     <label for="news"> La news:</label>
  8.     <textarea cols="25" rows="5" id="news" name="news"></textarea>
  9.   </p>
  10.   <p>
  11.     <input type="submit" name="Submit" value="Envoyer">
  12.     <input name="Reset" type="reset" id="Reset" value="Effacer">
  13.   </p>
  14. </form>


 
et pour rappel, voici le script lancé à l'envoi du form

Code :
  1. 1. $date=$_POST['date'];
  2.    2. $news=$_POST['news'];
  3.    3. $tp=explode('/',$date);
  4.    4. $datetp=mktime(01,00,00,$tp[1],$tp[0],$tp[2]);
  5.    5.
  6.    6. if (($date!=="" ) and ($news!=="" ))
  7.    7. {
  8.    8. $connex=mysql_connect("***","***","***" ) or die("Connexion impossible" );
  9.    9. mysql_select_db("****" ) or die("Connexion impossible" );
  10.   10. $requete=mysql_query("insert into news values ('','$datetp','$news')" );
  11.   11. if (!$requete)
  12.   12.  {
  13.   13.   echo "Erreur à la base Mysql - Recommencez plus tard<br />";
  14.   14.   echo "Merci<br />";
  15.   15.   echo "<a href=\"index.php\">Retour</a>";
  16.   16.  }
  17.   17. else
  18.   18.  {
  19.   19.   echo "Félicitations! La news a été enregistrée<br />";
  20.   20.   echo "<a href=\"../index.php?page=news\">Retour vers les news</a><br />";
  21.   21.   echo "<a href=\"index.php\">Page d'accueil</a>";
  22.   22.  }
  23.   23. mysql_close();
  24.   24. }
  25.   25. else
  26.   26. ......


 
 
Merci encore


Message édité par oualad le 16-10-2007 à 19:52:44

---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 17-10-2007 à 08:19:57    

Résultat de ton debugging? a.k.a. que valent $date, $tp[0], ...


Message édité par sircam le 17-10-2007 à 08:20:29

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 17-10-2007 à 09:42:17    

J'ai refait des tests;
pour aujourd'hui, j'ai bien ceci:

Code :
  1. $date=17/10/2007;
  2. $tp[1]=10;
  3. $tp[0]=17;
  4. $tp[2]=2007;


 
Je pense que le probleme ne vient pas de moi (à moins de m'être trompé quelque part, mais j'ai placé ici les differents scripts utilisé pour cette partie du site)...


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 17-10-2007 à 09:42:17   

Reply

Marsh Posté le 17-10-2007 à 09:53:43    

Je pense qu'une erreur se trouve ici:

Code :
  1. ....
  2. else
  3. {
  4.  $nbre=mysql_num_rows($requete);
  5.  if ($nbre<2) { echo "Il y a pour le moment $nbre nouvelle";}
  6.  else { echo "Il y a pour le moment $nbre nouvelles";}
  7.  while ($contenu=mysql_fetch_array($requete))
  8.  {
  9.   $date=date('d/m/Y',$contenu[date]); // probleme d'apostrophe??????
  10.   echo "<p><h3>$date</h3>\n";
  11.   echo "<span style='color:#39f;'>$contenu[nvelle]</span></p>\n";
  12.   $id=$contenu[id];
  13.   echo "<a href='index.php?page=suppr_news&id=$id'>Suprimer la news</a>";
  14.  }
  15. }
  16. ...


 
Mais en même temps pourquoi cela fonctionnerait-il bien chez moi et pas chez le client...
puisque le serveur où est hebergé le site est le même et que je pense pas qu'il réagisse differemment en fonction du OS.
Sinon, je deviens fou  :pt1cable:


Message édité par oualad le 17-10-2007 à 09:55:41

---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 17-10-2007 à 09:54:23    

Et chez ton client, là où le problème se produit?
 
Et $datetp?

Reply

Marsh Posté le 17-10-2007 à 09:57:02    

sircam a écrit :

Et chez ton client, là où le problème se produit?
 
Et $datetp?


Hier, là où j'avais 2007, il avait lui 1999...
 
Mais je vais aller chez lui.


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 25-10-2007 à 12:18:33    

Bonjour,
par manque de temps, je n'ai pu passer sur le forum.
Comme par magie, quand je suis allé chez le client, il a tapé la date devant moi, et celle-ci s'est affichée correctement.  :pt1cable:  
 
J'en conclus donc qu'il a mal rentré ces dates précedemment.  :fou:  
 
Quant à l'injection sql, j'ai une petite question:
le répertoitre où se trouve la section admin est protégée par fichier htaccess. Dois-je en plus sécurisé les requetes en sachant que celles-ci ne fonctionnent pas tant qu'on n'a pas l'autorisation d'acceder à la section admin?
 
Merci  :jap:


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 25-10-2007 à 12:28:18    

oualad a écrit :

Dois-je en plus sécurisé les requetes en sachant que celles-ci ne fonctionnent pas tant qu'on n'a pas l'autorisation d'acceder à la section admin?


Ca te coûte quoi de sécuriser tes requêtes avec PDO en PHP5? Rien grand chose, en fait.
 
A part ça, hein, boah, nobody will notice :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 25-10-2007 à 12:34:13    

sircam a écrit :


Ca te coûte quoi de sécuriser tes requêtes avec PDO en PHP5? Rien grand chose, en fait.


Ok merci de l'info.
 

sircam a écrit :


A part ça, hein, boah, nobody will notice :o


 :pt1cable: rien compris  :??:


Message édité par oualad le 25-10-2007 à 12:34:41

---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 25-10-2007 à 15:06:50    

== Ce serait bien de le faire, mais c'est pas forcément nécessaire. C'est un peu mal de ne pas le faire, ne serait-ce que par principe.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

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