Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2272 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Probleme avec des dates...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Probleme avec des dates...

n°1189810
7wX
Posté le 01-09-2005 à 18:52:48  profilanswer
 

Bonjour,
 
je suis en train de coder une réservation en ligne pour un club de tennis.
J ai besoin des dates en cours et celles choisies pour reserver afin de les comparer et de bloquer la reservation avec 15jours de delais maximum.
 
En fait la comparaison des dates marche sauf lorsque le mois choisis est septembre. Celui m'affiche une date du genre 'dd-0-YYYY' sur les autres mois cela m'affiche 'dd-mm-YYYY' sans probleme.  
Voici mon code en esperant que cela puisse etre résolu.
 
 
Menu.php

Code :
  1. <? session_start();
  2. if (isset($_POST['send']))
  3. {
  4. $send = $_POST['send'];
  5. {
  6. switch($send){
  7. case 'log':
  8. {
  9. if (isset($_POST['login']) && $_POST['login'] <> NULL && $_POST['password'] <> NULL) {
  10.  
  11.   $db = mysql_connect('localhost', 'using', 'testing');
  12.   mysql_select_db('usm', $db);
  13.  
  14.  
  15.  
  16.   $loggued = mysql_query('SELECT login, password FROM users WHERE login="'.$_POST['login'].'" AND password="'.$_POST['password'].'"');
  17.   $varlog = mysql_fetch_array($loggued, MYSQL_ASSOC);
  18.   if (($_POST['login'] == $varlog["login"]) && ($_POST['password'] == $varlog["password"])) //Test du login/pass
  19.   {
  20.       $_SESSION['login2'] = $_POST['login'];   //Login de l'utilisateur identifié de la session
  21.   $_SESSION['date'] = $vardate;
  22.        header('Location : current');
  23.   }
  24.   else
  25.       echo "<script type='text/javascript' language='Javascript'>alert('Login or Password incorrect')</script>";
  26.   mysql_close($db);
  27. }
  28. }
  29. break;
  30. case 'continuer' :
  31. if (isset($_POST['month']))
  32. {
  33. $month = $_POST['month'];
  34. {
  35. switch($month){
  36. case '01':
  37. $_SESSION['month'] = Janvier;
  38. $_SESSION['month2'] = 01;
  39. break;
  40. case '02':
  41. $_SESSION['month'] = Février;
  42. $_SESSION['month2'] = 02;
  43. break;
  44. case '03':
  45. $_SESSION['month'] = Mars;
  46. $_SESSION['month2'] = 03;
  47. break;
  48. case '04':
  49. $_SESSION['month'] = Avril;
  50. $_SESSION['month2'] = 04;
  51. break;
  52. case '05':
  53. $_SESSION['month'] = Mai;
  54. $_SESSION['month2']= 05;
  55. break;
  56. case '06':
  57. $_SESSION['month'] = Juin;
  58. $_SESSION['month2']= 06;
  59. break;
  60. case '07':
  61. $_SESSION['month'] = Juillet;
  62. $_SESSION['month2'] = 07;
  63. break;
  64. case '08':
  65. $_SESSION['month'] = Aout;
  66. $_SESSION['month2'] = 08;
  67. break;
  68. case '09':
  69. $_SESSION['month'] = Septembre;
  70. $_SESSION['month2'] = 09;
  71. break;
  72. case '10':
  73. $_SESSION['month'] = Octobre;
  74. $_SESSION['month2'] = 10;
  75. break;
  76. case '11':
  77. $_SESSION['month'] = Novembre;
  78. $_SESSION['month2'] = 11;
  79. break;
  80. case '12':
  81. $_SESSION['month'] = Décembre;
  82. $_SESSION['month2'] = 12;
  83. break;
  84. }}}
  85. break;
  86. case 'continuer2' :
  87. if (isset($_POST['jour']))
  88. {
  89. $_SESSION['jour'] = $_POST['jour'];
  90. }
  91. break;
  92. }}}
  93. echo'<table width="650" border="1" cellspacing="0" cellpadding="0" align="center">
  94. <tr>
  95. <td width>';
  96. if (isset($_SESSION['login2']))
  97. {
  98. echo'<a href=resa.php>Resa</a> ';
  99. echo '</td>';
  100. }
  101. else
  102. {
  103. echo'<form method="post">   
  104.   <table><tr><td>&nbsp Login:<input type="text" name="login" size=20></td>
  105.    </tr>
  106.    <tr><td>Pass: <input type="password" name="password" size=20></td>
  107.    </tr>
  108.      <tr align="center"><td colspan="2"><input type="submit" name="send" value="log"></td></tr></table>
  109. </form>';
  110. echo '</td>';
  111. }


 
Resa.php

Code :
  1. <?
  2. require_once("test.php" );
  3. $db = mysql_connect('localhost', 'using', 'testing');
  4.   mysql_select_db('usm', $db);
  5.   $datin = mysql_query('SELECT Date FROM cours WHERE ID_cours=1');
  6.   $dating1 = mysql_fetch_array($datin, MYSQL_ASSOC);
  7. echo '<td>';
  8. echo'<form name="form1" method="post" action="">
  9. <table>
  10. <tr>'; echo 'Choix de la date et heure de reservation</tr>
  11. <tr>';
  12. {
  13. $Mois1 = $_SESSION['month2'];
  14. $Jour1 = $_SESSION['jour'];
  15. $Annee1 = 2005;
  16. $Date0 = $Jour1 . "-" . $Mois1 . "-" . $Annee1;
  17. $Date1 = mktime( 0, 0, 0, $Mois1, $Jour1, $Annee1 );
  18. $Mois2 = date("m" );
  19. $Jour2 = date("j" );
  20. $Annee2 = date("Y" );
  21. $Date02 = $Jour2 . "-" . $Mois2 . "-" . $Annee2;
  22. $Date2 = mktime( 0, 0, 0, $Mois2, $Jour2, $Annee2 );
  23. $nb = floor(($Date1 - $Date2)  / (60*60*24)) ;
  24. if (isset($_SESSION['jour'])) {
  25. echo '<br>'; echo $_SESSION['month2'];
  26. echo '<br>Vous avez choisis le : ';
  27. echo $Date0;
  28. echo ' '; echo $Date1;
  29. echo '<br>';
  30. echo 'Nous sommes le : ';
  31. echo $Date02; echo ' '; echo $Date2;
  32. echo '<br>';
  33. echo 'Nombre de jour séparant date choisie avec date du jour : '; echo $nb;
  34. echo '<nb>';
  35. }
  36. else
  37. {
  38. if (isset($_SESSION['month'])) {
  39. echo '<td>';
  40. echo 'Mois : ';
  41. echo $_SESSION['month'];
  42. echo '</td></tr>';
  43. echo '<td>';
  44. echo' Jour :</td> <td><select name=jour>';
  45. $i = 1;
  46. while ( $i < 32 )
  47. {
  48. echo '<option>';echo $i; echo'</option>';
  49. $i++;
  50. }
  51. echo '</select></td><td> <input type="submit" name="send" value="continuer2"></td></tr></table></form>';}
  52. else
  53. {
  54. echo' <td>';
  55. echo' Mois : </td>
  56. <td> <select name=month> <option>01</option> <option>02</option> <option>03</option> <option>04</option> <option>05</option> <option>06</option>
  57. <option>07</option> <option>08</option> <option>09</option> <option>10</option> <option>11</option> <option>12</option>
  58. </select><td>
  59. <td> <input type="submit" name="send" value="continuer"></td></tr></table></form>
  60. ';
  61. }
  62. }}
  63. ?>


 
Merci de votre aide si possible :p

mood
Publicité
Posté le 01-09-2005 à 18:52:48  profilanswer
 

n°1189833
naceroth
Posté le 01-09-2005 à 19:23:31  profilanswer
 

Bon, déjà, ne met pas de zéro devant un nombre, 01 est une notation en octal et pas en décimal, ce qui pourrait expliquer le problème avec 09 :)

n°1189848
omega2
Posté le 01-09-2005 à 19:35:19  profilanswer
 

L'indentation est horible, j'y comprend rien.
et puis, plsuieurs "}" d'affilé ca complique la compréhension.
D'habitude j'arrive à comprendre comment marche les scripts mais là, j'y pige rien alors que c'est des pages bateau.
 
Au fait, il y a des fonctions pour comparer des dates.
Et pas besoin de mettre dans des sessions des données qu'on peut retrouver super facilement telle que le nom du mois en toute lettre : suffit de faire un tableau

Code :
  1. NOmDuMois=array('Janvier','Février',...)

que tu mets dans un fichier inclus par les pages où t'en as besoin. En ton case de 50 lignes deviendrais un simple "si nombre compris entre 1 à 12" alors on met ce chiffre dans la session sinon ..." et pour récupérer le nom du mois, ca donera

Code :
  1. NOmDuMois[$_SESSION['month2']]


 
enfin bref, là, j''arrive pas à comprendre assez bien ton code pour te donner la solution, mais t'as déjà de quoi l'améliorer. ;)

n°1189863
7wX
Posté le 01-09-2005 à 19:47:57  profilanswer
 

nothing else pour m'aider ?

n°1189868
sielfried
Posté le 01-09-2005 à 19:50:28  profilanswer
 

T'as fait ce qu'a dit naceroth  déjà ? Ce serait logique que ça vienne de là (même si le mois d'août serait censé déconner de la même façon que septembre).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1189869
7wX
Posté le 01-09-2005 à 19:53:03  profilanswer
 

oui ca serait logique que ca deconne tout autant.
je viens de tester et ca marche le probleme sera pour apres lorsque je vais comparer avec une date contenu dans ma BD sous mysql.
Les dates sont en 'dd' donc bon j'aurais bien voulu éviter :p

n°1190094
Profil sup​primé
Posté le 02-09-2005 à 01:04:01  answer
 

7wX a écrit :

oui ca serait logique que ca deconne tout autant.
je viens de tester et ca marche le probleme sera pour apres lorsque je vais comparer avec une date contenu dans ma BD sous mysql.
 
Les dates sont en 'dd' donc bon j'aurais bien voulu éviter :p


 
Que tes dates en bdd soit avec un ou X chiffres ca n'a AUCUNE influence sur les traitement que t'y applique
 
je vois pas en quoi ca te genes : apprends à utiliser la fonction date() :
date([format],[timestamp])  
 
donc :  
 
$tadate = date('Y-m-d',mktime(0,0,0,$mois,$jour,$annee);
--> http://www.php.net/date
 
probleme résolu?
 
PS : à voir ton code ca doit pas faire longtemps que tu connais PHP


Message édité par Profil supprimé le 02-09-2005 à 01:04:57
n°1190098
zapan666
Tout est relatif
Posté le 02-09-2005 à 01:18:06  profilanswer
 

7wX a écrit :


Code :
  1. switch($month){
  2. case '01':
  3. $_SESSION['month'] = Janvier;
  4. $_SESSION['month2'] = 01;
  5. break;
  6. case '02':
  7. $_SESSION['month'] = Février;
  8. $_SESSION['month2'] = 02;



 :sweat: très étrange comme code

Code :
  1. $_SESSION['month2'] = (int)$month;


 ça ne serait pas plus simple ?  
(et comme vu au dessus, un p'tite fonction genre  

Code :
  1. $_SESSION['month'] = nb2mois((int)$month);


 ça ne t'aiderais pas ?

Citation :


e viens de tester et ca marche le probleme sera pour apres lorsque je vais comparer avec une date contenu dans ma BD sous mysql.  


uhm, tu peux faire tes comparaisons directement dans ta base de donnée ou en php (cf post au dessus)
 
Il y a des fonctions mysql très pratiques, je trouve, pour faire des comparaisons de date, genre DATE_ADD, etc. (en plus avec le mots clès BETWEEN, tu peux choisir un intervalle de date, etc)
 
Note : un champ date utilise le format ISO yyyy-mm-dd c'est c'est plus simple pour faire la comparaison d'une date.
 
bref, que tu fasse ça du coté PHP, ou du coté de MySQL tu ne devrais avoir aucun problème...

n°1190393
7wX
Posté le 02-09-2005 à 13:43:43  profilanswer
 

merci a tous je vais voir ce que je peux faire pour arranger mon code :p


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Probleme avec des dates...

 

Sujets relatifs
Problème affichage news?[MySQL] problème de connexion....
[php] soucis avec 'chdir()' de PHP sous Winurl rewriting probleme - dossiers -> variable, possible ?
Probleme de conection a mon ftp et d ' instalation a dotclearJe suis debutant et mon serveur PHP marche pas....
[HTML] Problème de formulaire sous EudoraProbleme de + et de - dans Excel
Problème CSS[PHP Mysql] probleme pour avoir la difference entre 2 dates.
Plus de sujets relatifs à : [PHP] Probleme avec des dates...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR