$_POST pour date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : $_POST pour date

Re: $_POST pour date

par AB » 04 févr. 2011, 17:35

Pour vérifier la validité d'une date en php y'a une fonction dédiée :checkdate() qui tient compte des années bissextiles.

Y'a aussi un équivalent javascript http://phpjs.org/functions/checkdate:366

Re: $_POST pour date

par moogli » 04 févr. 2011, 17:08

heu <select> <option> .... => http://fr.selfhtml.org/html/formulaires ... htm#listes

sinon oui pour la regexp par contre faut quand même vérifier les bornes des nombres entrées parce qu'il y a des chances que 2248/78/75 vérifie ton masque :mrgreen:

@+

Re: $_POST pour date

par 63renaud » 04 févr. 2011, 17:05

super ton idée de liste déroulante , mais moi pas connaitre comment faire
sinon je ferai un regex pour la date.

merci

Re: $_POST pour date

par moogli » 04 févr. 2011, 16:09

heu oui mais encore faut il que tu vérifie que le format de date est bon parce que sinon c'est le drame (imagine que l'on entre 1095/78/45 ?)

c'est pour cela que l'on vois souvent des listes déroulantes pour simplifier la chose après tu en fait ce que tu veut et tu n'est pas tributaire du format indiqué par le gars devant sont PC. (il te suffira de tester si les valeurs rentrée sont des entiers avec des valeurs qui vont bien 1 - 31 pour les jours, 1 -12 pour les mois et > l'année en cours pour l'année :)).

@+

Re: $_POST pour date

par 63renaud » 04 févr. 2011, 15:43

en rentrant la date dans se sens 2001-01-10 cela fonctionne
je vais mettre un label pour indiquer la bonne saisie de la date .

merci

Re: $_POST pour date

par moogli » 04 févr. 2011, 15:38

oui oui j'ai raison ;)

a tu lu la doc ? http://dev.mysql.com/doc/refman/5.0/fr/datetime.html

la réponse a ta question est clairement énoncée dans les 10 premières lignes :)


@+

Re: $_POST pour date

par 63renaud » 04 févr. 2011, 15:34

Ma base de donnée est sous Table: client "InnoDB free: 4096 kB"
le champs est en date
dans le champs du formulaire je tapes 01-01-2010
mon formulaire

<label>stage Voyage</label> <input type="checkbox" name="xguest_stageV" id="xguest_stageV" value="oui"/>
				&nbsp;&nbsp;&nbsp;
				<label for xguest_dateStV>Date</label> <input type="date" name="xguest_dateStV" id="xguest_dateStV" value=""/>

et mo fichier add
<?php

$xguest_nom =$_POST['xguest_nom'];
$xguest_prenom =$_POST['xguest_prenom'];
$insc =$_POST['xguest_inscription'];
$xguest_adresse =$_POST['xguest_adresse'];
$xguest_ville =$_POST['xguest_ville'];
$xguest_cp =$_POST['xguest_cp'];
$xguest_tel =$_POST['xguest_tel'];
$xguest_mobil =$_POST['xguest_mobil'];
$xguest_email =$_POST['xguest_email'];
$xguest_site =$_POST['xguest_site'];
// -------------------------------------------------------------STAGES et date de stage
$stN =$_POST['xguest_stageN'];
$xguest_dateStN =$_POST['xguest_dateStN'];

$stV =$_POST['xguest_stageV'];
$xguest_dateStv =$_POST['xguest_dateStV'];

$stD =$_POST['xguest_stageD'];
$xguest_dateStD =$_POST['xguest_dateStD'];

$stW =$_POST['xguest_stageW'];
$xguest_dateStW =$_post['xguest_dateStW'];

$stNb =$_POST['xguest_stageNb'];
$xguest_dateStNb =$_POST['xguest_dateStNb'];
// ------------------------------------------------------------- Infos
$inf1 =$_POST['xguest_info1'];
$inf2 =$_POST['xguest_info2'];
// ------------------------------------------------------------- Appel et date
$xguest_dateA =$_POST['xguest_dateAppel'];
$rap =$_POST['xguest_rap'];
$rep =$_POST['xguest_rep'];
$absc =$_POST['xguest_absc'];
$fauxN=$_POST['xguest_fauxN'];


       // connexion à la base  // sélection de la base  
	   

require_once'mysql_connect.php';

    
    // on écrit la requête sql
    $sql = "INSERT INTO client (id_xguest,xguest_nom,xguest_prenom,xguest_inscription,xguest_adresse,xguest_ville,xguest_cp,
																									xguest_tel,xguest_mobil,xguest_email,xguest_site,
													xguest_stageN,xguest_dateStN,
													xguest_stageV,xguest_dateStV,
													xguest_stageD,xguest_dateStD,
													xguest_stageW,xguest_dateStW,
													xguest_stageNb,xguest_dateStNb,
													xguest_info1,xguest_info2,
													xguest_dateAppel,xguest_rap,xguest_rep,xguest_absc,xguest_fauxN) 
				VALUES('','$xguest_nom','$xguest_prenom','$insc','$xguest_adresse','$xguest_ville','$xguest_cp','$xguest_tel','$xguest_mobil','$xguest_email','$xguest_site',
									'$stN','$xguest_dateStN',
									'$stV','$xguest_dateStv',
									'$stD','$xguest_dateStD',
									'$stW','$xguest_dateStW',
									'$stNb','$xguest_dateStNb',
									'$inf1','$inf2',
									'$xguest_dateA','$rap','$rep','$absc','$fauxN')";
    
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
		mysql_close();  // on ferme la connexion
    // on affiche le résultat 
    echo '<strong><center><h1><br/><br/><br/><br/><br/><br/><br/><br/><br/>BRAVO TU ES LE MEILLEUR TOUT ES OK.</h1></center></strong>';

    

?> 

Re: $_POST pour date

par moogli » 04 févr. 2011, 15:03

salut,

j'ajouterais que le problème est dû au fait que le format de date que tu rentre ne convient à mysql et donc il met la valeur par défaut.

pour info => les types dates dans la doc de mysql ;)

@+

Re: $_POST pour date

par jojolapine » 04 févr. 2011, 13:02

Bonjour,

Quelle est la structure de la base de donnée?
Qu'entres-tu dans ton champs? Quels traitements effectues-tu sur les données du formulaire?
Un peu de code?

$_POST pour date

par 63renaud » 04 févr. 2011, 12:19

Bonjour

dans mon formulaire tous fonctionne sauf les dates.
quand je saisie une date dans imput type=texte, elle ne s'enregistre pas dans ma base de données mais affiche 00-00-0000.

merci