Retour d'erreur php
Résolu
brutalus
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
brutalus Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
brutalus Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement sur un formulaire assez simple qui consiste a prendre une commande, et j'aimerais que l'utilisateur ne puisse pas mettre pour la date de livraison demandée une date avec la date du jour + 7 jours.
donc j'ai trouver cette ligne de commande :
$dateallowed = date('Y/m/d', strtotime('+7 day'));
mais j'aimerais savoir comment sa marche au niveau du submit, car a l'envoi du formulaire si l'utilisateur a mis une date inférieure a la date autorisée alors j'aimerais retourner un message d'erreur puis revenir a la page précédente.
Comment je peux dire que mon if entre mes balises php interragi sur le submit de la fin de mon formulaire ?
<p>Date souhaitée de livraison (prévoir votre commande une semaine à l'avance) (JJ/MM/AAAA) :</p> <input type="text" />
<input type="submit" value="Valider" />
Merci d'avance.
ps : je débute le php.
Je suis actuellement sur un formulaire assez simple qui consiste a prendre une commande, et j'aimerais que l'utilisateur ne puisse pas mettre pour la date de livraison demandée une date avec la date du jour + 7 jours.
donc j'ai trouver cette ligne de commande :
$dateallowed = date('Y/m/d', strtotime('+7 day'));
mais j'aimerais savoir comment sa marche au niveau du submit, car a l'envoi du formulaire si l'utilisateur a mis une date inférieure a la date autorisée alors j'aimerais retourner un message d'erreur puis revenir a la page précédente.
Comment je peux dire que mon if entre mes balises php interragi sur le submit de la fin de mon formulaire ?
<p>Date souhaitée de livraison (prévoir votre commande une semaine à l'avance) (JJ/MM/AAAA) :</p> <input type="text" />
<input type="submit" value="Valider" />
Merci d'avance.
ps : je débute le php.
5 réponses
Bonjour,
Pour cela tu peut utiliser le javascript qui te permet de verifié directement ce que l'utilisateur a entrer dans le formulaire.
Voici un tutoriel tres bien expliqué a ce sujet avec un tres bon exemple, en 1-2h tu sera capable de resoudre ton probleme si tu le lit correctement:
Cours sur les formulaire
exercice corrigé sur le formulaire
Pour cela tu peut utiliser le javascript qui te permet de verifié directement ce que l'utilisateur a entrer dans le formulaire.
Voici un tutoriel tres bien expliqué a ce sujet avec un tres bon exemple, en 1-2h tu sera capable de resoudre ton probleme si tu le lit correctement:
Cours sur les formulaire
exercice corrigé sur le formulaire
En faite je ne m'y connais pas du tout en Javascripite et j'aimerais simplement optimiser mon site tout en restant dans le php.
Faut-il que je stock la date dans une variable puis que dans la code php je mette un truc du genre
<?php
if ( (isset($date)) < ($dateallowed = date('Y/m/d', strtotime('+7 day'))))
//message d'erreur puis retour de page.
else
//faire le submit
?>
Faut-il que je stock la date dans une variable puis que dans la code php je mette un truc du genre
<?php
if ( (isset($date)) < ($dateallowed = date('Y/m/d', strtotime('+7 day'))))
//message d'erreur puis retour de page.
else
//faire le submit
?>
Merci de ta réponse c'est vrai que c'est assez rapide en visitant tes 2 pages,mon code a l'air bon mais sa m'a l'air trop simple
<form method="post" action="cible.php" onsubmit="return verify(x);">
//mon formulaire
<p>Date souhaitée de livraison (prévoir votre commande une semaine à l'avance) (JJ/MM/AAAA) :</p> <input type="text" name="date"/>
</form>
<?php
function verify(x) {
if( $_POST['date'] > date('Y/m/d', strtotime('+7 day')) )
return true;
else
{
alert('La date de livraison doit être dune semaine au plus tôt.');
return false;
}
?>
<form method="post" action="cible.php" onsubmit="return verify(x);">
//mon formulaire
<p>Date souhaitée de livraison (prévoir votre commande une semaine à l'avance) (JJ/MM/AAAA) :</p> <input type="text" name="date"/>
</form>
<?php
function verify(x) {
if( $_POST['date'] > date('Y/m/d', strtotime('+7 day')) )
return true;
else
{
alert('La date de livraison doit être dune semaine au plus tôt.');
return false;
}
?>
<?php
if ( (isset($date)) < ($dateallowed = date('Y/m/d', strtotime('+7 day'))))
//message d'erreur puis retour de page.
else
//faire le submit
//si tu est arrivé la c'est que le submit s'est déja fait
//il vaut mieux faire ici le traitement de ta commande
//et mets des { } avec tes if else
?>
if ( (isset($date)) < ($dateallowed = date('Y/m/d', strtotime('+7 day'))))
//message d'erreur puis retour de page.
else
//faire le submit
//si tu est arrivé la c'est que le submit s'est déja fait
//il vaut mieux faire ici le traitement de ta commande
//et mets des { } avec tes if else
?>
les accolades ne sont pas obligatoires si tu n'as qu'une seule ligne d'instruction a chaque, mais il vaut mieux les mettre systématiquement, pour un meilleur lisibilité du code et si tu veux rajouter une ligne de plus, un echo par exemple tu vas te retrouver coincé, il faudra les rajouter à ce moment la, donc des risques d'erreur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
un exemple de methode pour répondre à ton soucis:
<?php /* en procedant ainsi la page s'appelle elle même (action="" )donc le formulaire va se réafficher en cas d'erreur avec les valeurs déja saisies (value="< ?php echo ...) */ //init des variables à vide $msg=""; //message d'erreur eventuel $affich_form=true; //affichage ou reaffichage du formulaire //champs du formulaire $nom=""; $prenom=""; //etc.. $date_livraison_souhaitee=""; //partie traitement des erreurs et du formualire if(isset($_POST['envoyer_cde'])){ //le formualire a été posté on recupère les valeurs des champs $nom=$_POST['nom']; $prenom=$_POST['prenom']; //etc.. $date_livraison_souhaitee=$_POST['date_liv_souh']; //la tu fais tes tests $dateAllowed = date('Y/m/d', strtotime('+7 day')) if($date_livraison_souhaitee < $dateAllowed){ $msg="La date de livraison doit être 7 jours aprsè la date du jour !"; $affich_form=true; //reaffichage du formulaire }else{ $affich_form=false; //c'est bon donc on ne réaffichera pas le formulaire //et la tu poursuit le traitement de ta commande /// ..... } } if($affich_form){ ?> <form name="form1" method="post" action=""> Nom:<input type="text" name="nom" value="<?php echo $nom; ?>" /><br /> Prenom:<input type="text" name="prenom" value="<?php echo $prenom; ?>" /><br /> Date de livraison souhaitée:<input type="text" name="date_liv_souh" value="<?php echo $date_livraison_souhaitee; ?>" /><br /> <?php if($msg!=""){echo '<font color="red">Date de livraison non conforme !</font>';} ?> <br /> <input type="submit" name="envoyer_cde" value="Envoyer le commande" /><br /> </form> <?php } //fin du if ($affich_form) ?>