Problème de script PHP
Fermé
End-y
Messages postés
2
Date d'inscription
mardi 13 septembre 2011
Statut
Membre
Dernière intervention
14 septembre 2011
-
13 sept. 2011 à 19:01
Utilisateur anonyme - 16 sept. 2011 à 07:59
Utilisateur anonyme - 16 sept. 2011 à 07:59
A voir également:
- Problème de script PHP
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
5 réponses
Utilisateur anonyme
14 sept. 2011 à 08:47
14 sept. 2011 à 08:47
Bonjour,
Premier jet, j'ai copié le code et l'ai exécuté, sans rien poster.
Trois message d'erreurs :
Notice: Undefined variable: to in F:\EasyPHP-5.3.6.1\www\test\test.php on line 107
Notice: Undefined variable: msg in F:\EasyPHP-5.3.6.1\www\test\test.php on line 107
Notice: Undefined variable: headers in F:\EasyPHP-5.3.6.1\www\test\test.php on line 107
Alors pour allez plus loin ce serait sympa d'avoir aussi le formulaire.
Cordialement
Premier jet, j'ai copié le code et l'ai exécuté, sans rien poster.
Trois message d'erreurs :
Notice: Undefined variable: to in F:\EasyPHP-5.3.6.1\www\test\test.php on line 107
Notice: Undefined variable: msg in F:\EasyPHP-5.3.6.1\www\test\test.php on line 107
Notice: Undefined variable: headers in F:\EasyPHP-5.3.6.1\www\test\test.php on line 107
Alors pour allez plus loin ce serait sympa d'avoir aussi le formulaire.
Cordialement
nickyaneo57
Messages postés
7
Date d'inscription
vendredi 9 septembre 2011
Statut
Membre
Dernière intervention
16 septembre 2011
2
14 sept. 2011 à 09:09
14 sept. 2011 à 09:09
bonjour ton script n'est pas très organisé. Tu refais plusieurs fois le même test (champs vides)
Pour le cookie je te conseille de le supprimer et de faire une redirection quand l'email est envoyé, ca te fera des tests en moins et donc du temps d'exécution serveur gagné.
Ton message d'erreur de champs vides ne s'affichera jamais car tu l'affiche dans la condition "if" si les champs sont remplis. Tu teste tes champs puis tu les reteste à l'intérieur de ce même test.
Pour le cookie je te conseille de le supprimer et de faire une redirection quand l'email est envoyé, ca te fera des tests en moins et donc du temps d'exécution serveur gagné.
Ton message d'erreur de champs vides ne s'affichera jamais car tu l'affiche dans la condition "if" si les champs sont remplis. Tu teste tes champs puis tu les reteste à l'intérieur de ce même test.
End-y
Messages postés
2
Date d'inscription
mardi 13 septembre 2011
Statut
Membre
Dernière intervention
14 septembre 2011
14 sept. 2011 à 16:25
14 sept. 2011 à 16:25
Bonjour,
Merci pour vos réponse ! :)
@Neoprog67 : J'ai effectivement eu le même résultat en serveur local.. mais je ne sais pas comment y remédier...
Désolé ; voici mon formulaire.html (la partie qui nous intéresse) :
@nickyaneo57 : Merci pour tes remarques :)
J'ai supprimé mon cookie mais comment créer une redirection ?
Que dois-je encore modifier ??
Merci pour vos réponse ! :)
@Neoprog67 : J'ai effectivement eu le même résultat en serveur local.. mais je ne sais pas comment y remédier...
Désolé ; voici mon formulaire.html (la partie qui nous intéresse) :
<div id="corps"> <div class="formulaire"> <h2>Commande</h2> <h4>Bienvenue dans l'espace <em>commande</em> de ce site web. Remplissez ce formulaire et envoyez le moi, je vous contacterai ensuite par téléphone ou par e-mail afin de confirmer votre commande, avant de définir une date à laquelle nous nous rencontrerons chez moi.</h4> <form name="commande" method="post" action="traitement.php"> <fieldset> <legend>Vos coordonnées</legend> <label for="nom">Votre nom</label> * <input type="text" name="nom" id="nom" size="30" /><br /><br /> <label for="adresse">Votre adresse</label> * <input type="text" name="adresse" id="adresse" size="50"/><br /><br /> <label for="code_posal">Code postal</label> * <input type="text" name="code_postal" id="code_postal" size="4" maxlength="5" /> <label for="ville">Ville</label> * <input type="text" name="ville" id="ville" size="30" /><br /><br /> <label for="num_tel">Téléphone</label> * <input type="text" name="num_tel" id="num_tel" size="9" maxlength="10" /> <label for="email">E-mail</label> * <input type="text" name="email" id="email" size="35" /><br /> </fieldset><fieldset> <legend>Votre commande</legend> <label for="objet">Objet </label> * <input type="text" name="objet" id="objet" size="40" /> <label for="nombre">Qté </label> * <input type="text" name="nombre" id="nombre" size="8" maxlength="2"/><br /><br /> <label for="taille">Taille (cm)</label> * <input type="text" name="taille" id="taille" size="8" maxlength="3" /> <label for="prix">Prix (EUR)</label> * <input type="text" name="prix" id="prix" size="8" maxlength="3" /><br /><br /> <label for="couleurs">Couleurs </label> * <br /><input type="text" name="partie1" id="partie1" size="20" value=" partie de l'objet" onclick="if (value==' partie de l\'objet'){value=''}; this.focus();"/> : <input type="text" name="couleur1" id="couleur1" size="30" value=" couleur de cette partie" onclick="if (value==' couleur de cette partie'){value=''}; this.focus();"/><br /> <input type="text" name="partie2" id="partie2" size="20" /> : <input type="text" name="couleur2" id="couleur2" size="30" /><br /> <input type="text" name="partie3" id="partie3" size="20" /> : <input type="text" name="couleur3" id="couleur3" size="30" /><br /> <input type="text" name="partie4" id="partie4" size="20" /> : <input type="text" name="couleur4" id="couleur4" size="30" /><br /><br /> <label for="remarque">Avez-vous des remarques ou une personnalisation à apporter ?</label><br /><textarea name="remarque" id="remarque" rows="5" cols="50"></textarea><br /> </fieldset> <p><em>Les champs indiqués d'un * sont obligatoires.</em><br /></p> <h5><input type="submit" value="Envoyer" /><input type="reset" value="Effacer"/></h5> </form> </div> </div>
@nickyaneo57 : Merci pour tes remarques :)
J'ai supprimé mon cookie mais comment créer une redirection ?
Que dois-je encore modifier ??
Utilisateur anonyme
15 sept. 2011 à 10:29
15 sept. 2011 à 10:29
Bonjour,
Merci pour le HTML.
Bon il faut totalement restructurer le PHP, ça ne va pas du tout.
En gros faire ceci étape par étape :
1- vérifier que le formulaire est bien poste, si ce n'est pas le cas, retour au formulaire, sinon étape 2
2 - Vérifier si tout les champs ont bien été postés
Alors je n'aime pas du tout le extract, je préfère travailler avec les $_POST directement, plus sûr...
3 - vérifier la cohérence des champs
4 - fabrication du mail et envoi
Mais, si vous voulez que les messages s'affichent dans le formulaire, il va falloir fusionner votre PHP et HTML.
Je m'explique, la page php doit être la page qui affiche le formulaire, donc on reprend
1- vérifier que le formulaire est bien poste, si ce n'est pas le cas, retour au formulaire, sinon étape 2
2 - Vérifier si tout les champs ont bien été postés
3 - vérifier la cohérence des champs
4 - fabrication du mail et envoi et redirection vers une nouvelle page PHP ou HTML
Merci pour le HTML.
Bon il faut totalement restructurer le PHP, ça ne va pas du tout.
En gros faire ceci étape par étape :
1- vérifier que le formulaire est bien poste, si ce n'est pas le cas, retour au formulaire, sinon étape 2
if (isset($_POST['nom']) { // Etape 2 } else { header('location:formulaire.html'); }
2 - Vérifier si tout les champs ont bien été postés
Alors je n'aime pas du tout le extract, je préfère travailler avec les $_POST directement, plus sûr...
if (empty[$_POST['nom'] || ...) { echo 'Veuillez remplir les champs indiqués d\'un *.'; } else { // etape 3 }
3 - vérifier la cohérence des champs
if (preg_match($regex_head, $nom) || ... ) { echo 'En-têtes interdites dans les champs du formulaire.'; } else { // etape 4 }
4 - fabrication du mail et envoi
Mais, si vous voulez que les messages s'affichent dans le formulaire, il va falloir fusionner votre PHP et HTML.
Je m'explique, la page php doit être la page qui affiche le formulaire, donc on reprend
1- vérifier que le formulaire est bien poste, si ce n'est pas le cas, retour au formulaire, sinon étape 2
$echo=''; if (isset($_POST['nom']) { // Etape 2 } ?> code HTML de la page du formulaire avec quelque part dans cette page un <span class="error"><?php echo $echo; ?></span>
2 - Vérifier si tout les champs ont bien été postés
if (empty[$_POST['nom'] || ...) { $echo = 'Veuillez remplir les champs indiqués d\'un *.'; } else { // etape 3 }
3 - vérifier la cohérence des champs
if (preg_match($regex_head, $nom) || ... ) { $echo = 'En-têtes interdites dans les champs du formulaire.'; } else { // etape 4 }
4 - fabrication du mail et envoi et redirection vers une nouvelle page PHP ou HTML
//envoi mail... header('location:page.php'); exit;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oh merci ! :)
Ca marche nickel !! :D
Vous êtes géniaux !!
Une dernière chose (et puis j'arrête :p ) :
Savez vous comment faire en sorte qu'une petite fenêtre transparente apparaisse et dise : "Merci, bien envoyé" ou "tous les champs doivent être remplis" etc.. (je crois que c'est du javascript ^^' ) puis qu'elle disparaisse et que si le mail est envoyé, les internautes soient redirigés sur ma page d'accueil.
Merci bcp pour votre aide et bonne soirée :)
Ca marche nickel !! :D
Vous êtes géniaux !!
Une dernière chose (et puis j'arrête :p ) :
Savez vous comment faire en sorte qu'une petite fenêtre transparente apparaisse et dise : "Merci, bien envoyé" ou "tous les champs doivent être remplis" etc.. (je crois que c'est du javascript ^^' ) puis qu'elle disparaisse et que si le mail est envoyé, les internautes soient redirigés sur ma page d'accueil.
Merci bcp pour votre aide et bonne soirée :)