date

date - PHP - Programmation

Marsh Posté le 24-05-2006 à 10:46:11    

slt
 
voilà j'ai un problème en php. est-il possible de faire un champ pour une date a insérer. Dans le champs il n'y aurait que les chiffres à insérer. ../../.. ou ..-..-.. .  
ou alors quand la personne veut insérer la date dans le champs vide, et qu'il mette une lettre, un message d'erreur apparaît.
et comment fait-on un message d'erreur?
 
 
c'est l'administrateur qui choisit la date qu'il veut inserer.  
 
La date sert a savoir combien de temps il decide de garder un texte ou une banniere. il rentre la date de depart et la date de fin.. par exemple il veut qu'une banniere soit affichée du 25 mai 2006 au 30 juin 2006. il rentre ces dates et la banniere est affichée tout ce temps.
 
j'ai fait 2 champs dans la base de données. date_debut et date_fin.  
 
 mais je sais pas comment faire pour qu'aucune lettre ne soit insérée, qu'il n'y ait que des chiffres. s'il rentre par mégarde une lettre il y aura un message d'erreur
 
merci d'avance

Reply

Marsh Posté le 24-05-2006 à 10:46:11   

Reply

Marsh Posté le 24-05-2006 à 10:51:56    

tu as 400 façons différentes de le faire, on va opter pour la plus simple, lis la doc et utilise is_int
 
edit: Attention avec cette fonction, cela ne va vérifier que ce que tu demandais, à savoir "qu'il n'y ait que des nombres". Rien n'empechera de sasir 56/87/1201 comme date.


Message édité par anapajari le 24-05-2006 à 10:53:21
Reply

Marsh Posté le 24-05-2006 à 10:56:13    

Si tu veux vérifeir que la date est valide il va falloir faire un petit bout de javascript.
 
Il y a un bon article : http://www.aidejavascript.com/article122.html
 
Sinon pour le masque de champ __/__/____ je n'ai aucune idée à première vue.

Message cité 1 fois
Message édité par HellR le 24-05-2006 à 10:58:01
Reply

Marsh Posté le 24-05-2006 à 11:00:09    

HellR a écrit :

Si tu veux vérifeir que la date est valide il va falloir faire un petit bout de javascript.


nawak :o

Reply

Marsh Posté le 24-05-2006 à 11:02:52    

Poru le masque de saisie regarde de ce côté là :
http://www.javascriptfr.com/codes/ [...] 17339.aspx
http://www.javascriptfr.com/codes/ [...] 15773.aspx


Message édité par HellR le 24-05-2006 à 11:05:34
Reply

Marsh Posté le 24-05-2006 à 11:04:29    


 
J'adore les réponses aussi constructives, on à l'impression d'être moins idiot d'un coup là :)

Reply

Marsh Posté le 24-05-2006 à 11:06:26    

lol trop chou..  
merci pour votre aide tout le monde.. je vais voir les liens et je vous redit tout ca ... :)

Reply

Marsh Posté le 24-05-2006 à 11:16:11    

Faire les controles de validité "coté client" ( donc en javascript) n'est jamais une bonne idée pour la simple est bonne raison qu'il est facile des les désactiver.
Ce genre de contrôle doit être fait "coté serveur" (donc en php) afin de s'assurer de la validité des données insérées dans la base.  
 
Rajouter du javascript peut être utile pour faciliter la saisie de l'utilisateur mais c'est tout...

Reply

Marsh Posté le 24-05-2006 à 11:22:05    

Tu vois avec des phrases c'est déjà mieux ^^  
 
Pour appliquer un masque et pour avertir l'utilisateur si les donées saisies sont érronées tu n'a pas d'autres choix que le javascript. A part faire des redirection à gogo en renvoyant tous les paramètres de pages en pages je ne vois pas de solution "pratique" en PHP. Après en effet, un contrôle final juste avant l'insertion dans la base c'est indispensable :)


Message édité par HellR le 24-05-2006 à 11:22:33
Reply

Marsh Posté le 24-05-2006 à 11:23:53    

ouhlà y a du contradictoire la dedans :/.. mais comme je fais coté administrateur y a aucun probleme pour utiliser du javascript non?.. et sinon en php ca donnerait quoi alors?

Reply

Marsh Posté le 24-05-2006 à 11:23:53   

Reply

Marsh Posté le 24-05-2006 à 11:31:53    

Il n'y a rien de contradictoire. Si tu as une page form.php par exemple avec ton formulaire qui renvoie le tout sur updatebdd.php qui va mettre à jour la base de données, il faut :
 
1) Faire une vérification des données de ton formulaire et appliquer les masques sur form.php, le tout en javascript. En gros au moment ou la personne va valider le formulaire ça va d'abord lancer le javascript puis rediriger le tout sur updatebdd.php.
 
2) Faire une vérification en PHP des données sur updatebdd.php juste avant l'insertion dans la base de données. Comme l'a expliqué anapajari ça permet d'être sur de ce que tu insères même si le javascript est désactivé sur le navigateur de la personne.


Message édité par HellR le 24-05-2006 à 11:46:40
Reply

Marsh Posté le 24-05-2006 à 11:40:56    

le js c'est le mal :o
Aussi bien pour le problème de désactivation que j'évoquais plus haut que pour les problèmes de compatibilité inter browser
 
Et je ne suis vraiment pas d'accord sur l'aspect "pas pratique" de la solution. Si le site est correctement construit et que la couche présentation est bien séparée de la couche métier, c'est très aisé à faire. D'ailleurs même si c'est pas le cas c'est pas bien difficile. Tu peux tout faire tenir en une page... un truc dans le genre:
form.php

Code :
  1. <?php
  2. if ( count($_POST)){
  3.   if (! checkdate($_POST['month'], $_POST['day'], $_POST['year']){
  4.     $error = 1;
  5.   }
  6. } else {
  7.   // traitement si tout est ok puis redirection
  8.   header('ok.php');
  9. }
  10. ?>
  11. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
  12. <head>
  13.   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  14.   <title>Exemple</title>
  15.   <style type="text/css">
  16.   span.error{
  17.   color:red;
  18.   }
  19.   </style>
  20. </head>
  21. <body>
  22.   <form id="myform" action="form.php" method="post">
  23.     <input type="text" name="day" value="<?php echo $_POST['day']?>"/>
  24.     <input type="text" name="month" value="<?php echo $_POST['month']?>"/>
  25.     <input type="text" name="year" value="<?php echo $_POST['year]?>"/>
  26.     <input type="submit" value="valider"/>
  27.   </form>
  28.   <?php if ($error){ ?>
  29.   <span class="error">La date n'est pas correct</span>
  30.   <?php }?>
  31. </body>
  32. </html>

Reply

Marsh Posté le 24-05-2006 à 11:52:13    

Meuh non javascript ce n'est pas si mal :)
 
Sinon very nice ta solution, à condition de tout bien séparer au risque d'avoir une page illisible. Je prend note pour le futur je n'y avais pas pensé ;)

Reply

Marsh Posté le 24-05-2006 à 12:00:16    

j'ai insérer ton code dans le mien et il me dit qu'il y a une faute dans la ligne du if (! checkdate....).. je ne comprends pas pourquoi..:(

Reply

Marsh Posté le 24-05-2006 à 12:05:51    

il manque une parenthèse fermante au if...
dsl j'ai tout ecrit de tête sans rien tester :D

Reply

Marsh Posté le 24-05-2006 à 17:21:24    

merci bcp.. j'ai une autre question..moitié flash moitié php :D...
en flash j'ai crée des effets qui doivent s'appliquer à l'image dans php.. les effets sont choisis dans une liste deroulante.  
 
comment importer du swf dans php? faut-il mettre dans un xml?  
je dois aussi placer ce code quelque part: swf?service=video (fichier xml se nomme video.xml)
 
vous pouvez aussi m'aider sur ce point :)

Reply

Marsh Posté le 29-05-2006 à 21:03:54    

moi ma question est a peu pres la meme..  
 
si on rentre la date dans le champ.. par ex 12122006.. comment fait-on qu'elle se mette automatiquement 12.12.2006??  
j ai cherché partout en vain.. lorsque j'insère la date, quelque chose doit se mettre en action a la date indiquée.. genre une animation par ex.. vous avez des idées???

Reply

Sujets relatifs:

Leave a Replay

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