Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: chaloupe le le 27-02-2012 a 12:10:18

Titre: Encore une histoire de formulaire
Posté par: chaloupe le le 27-02-2012 a 12:10:18

Bonjour à vous tous,

Après plusieurs jours de recherches sur le net et quelques recherches sur ce forum je me suis enfin décidée à m'inscrire pour solliciter votre expérience.
Je suis entrain de créer un site et suis partie de zéro avec mon bloc note. Comme beaucoup d'entre vous je suppose je suis autodidacte dans le domaine avec le handicap majeur d'être BLonde !!!
Bref, j'ai quand même fini par pondre une page qui est en ligne et je m’attèle à préparer les suivantes pensant que cela serait plus simple mais vu que j'ai envie d'ajouter quelques éléments qui me semblent indispensables forcément les choses se corsent.
Mon problème se situe au niveau d'un code php d'un formulaire que j'ai trouvé sur un site qui le proposait, que j'ai un peu modifié à ma sauce et dont je vous fait le coller :

<?php
// S'il y des données de postées
if ($_SERVER['REQUEST_METHOD']=='POST') {
// Code PHP pour traiter l'envoi de l'email

$nombreErreur = 0; // Variable qui compte le nombre d'erreur

// Définit toutes les erreurs possibles
if (!isset($_POST['email'])) { // Si la variable "email" du formulaire n'existe pas (il y a un problème)
$nombreErreur++; // On incrémente la variable qui compte les erreurs
$erreur1 = '<p>Il y a un problème avec la variable "email".</p>';
} else { // Sinon, cela signifie que la variable existe (c'est normal)
if (empty($_POST['email'])) { // Si la variable est vide
$nombreErreur++; // On incrémente la variable qui compte les erreurs
$erreur2 = '<p>Vous avez omis de préciser votre email</p>';
} else {
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$nombreErreur++; // On incrémente la variable qui compte les erreurs
$erreur3 = '<p>Cet email semble incorrect ou incomplet</p>';
}
}
}

if (!isset($_POST['message'])) {
$nombreErreur++;
$erreur4 = '<p>Il y a un problème avec la variable "message".</p>';
} else {
if (empty($_POST['message'])) {
$nombreErreur++;
$erreur5 = '<p>Quel est votre message ?</p>';
}
}

if (!isset($_POST['captcha'])) {
$nombreErreur++;
$erreur6 = '<p>Il y a un problème avec la variable "captcha".</p>';
} else {
if ($_POST['captcha']!=22) {
$nombreErreur++;
$erreur7 = '<p>Désolé, le résultat (anti-spam) est erroné.</p>';
}
}

if ($nombreErreur==0) { // S'il n'y a pas d'erreur
// Récupération des variables et sécurisation des données
$nom = htmlentities($_POST['nom']); // htmlentities() convertit des caractères "spéciaux" en équivalent HTML
$email = htmlentities($_POST['email']);
$chats = htmlentities($_POST['chats']);
$message = htmlentities($_POST['message']);

// Variables concernant l'email
$destinataire = 'monadresse@mail.com'; // Adresse email du webmaster
$sujet = 'Titre du message'; // Titre de l'email
$contenu = '<html><head><title>Titre du message</title></head><body>';
$contenu .= '<p>Bonjour, un message vous a été envoyé à partir du formulaire de contact de votre site.</p>';
$contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
$contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
$contenu .= '<p><strong>Chats</strong>: '.$chats.'</p>';
$contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
$contenu .= '</body></html>'; // Contenu du message de l'email

// Pour envoyer un email HTML, l'en-tête Content-type doit être défini
$headers = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-15'."\r\n";

@mail($destinataire, $sujet, $contenu, $headers); // Fonction principale qui envoi l'email

[glow=red,2,300] echo '<h3>Merci</h3><p>Votre message a été envoyé à la responsable de la pension.</p><p>Vous recevrez une réponse dans les meilleurs délais.</p><p>

<a href="http://www.nomdedomaine.fr">Retourner sur la page d'accueil</a></p>'; [/glow] // Afficher un message pour indiquer que le message a été envoyé
} else { // S'il y a un moins une erreur
echo '<div style="border:1px solid #ff0000; padding:5px;">';
echo '<p style="color:#ff0000;">Désolé, il y a '.$nombreErreur.' erreur(s). Voici le détail des erreurs:</p>';
if (isset($erreur1)) echo '<p>'.$erreur1.'</p>';
if (isset($erreur2)) echo '<p>'.$erreur2.'</p>';
if (isset($erreur3)) echo '<p>'.$erreur3.'</p>';
if (isset($erreur4)) echo '<p>'.$erreur4.'</p>';
if (isset($erreur5)) echo '<p>'.$erreur5.'</p>';
   if (isset($erreur6)) echo '<p>'.$erreur6.'</p>';
   if (isset($erreur7)) echo '<p>'.$erreur7.'</p>';
echo '</div>';
}
}
?>


avec un message d'erreur lors de l'envoi du formulaire qui est le suivant:


Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/pensionc/public_html/index.php on line 69


j'ai changé volontairement la police d'écriture de la ligne 69 qui semble poser problème pour que vous la visualisiez mieux dans le code

Bien entendu j'ai aussi une partie html pour compléter le code mais ce n'est pas elle qui semble être un problème.Si vous voulez cette petite partie je peux vous la rajouter.

Je tiens à signaler que le code fonctionnait parfaitement bien tant que je n'ai pas chercher à faire de redirection après l'envoi du formulaire et que lorsque je remplis le formulaire et l'envoie (sans être en ligne) je suis bien rediriger vers la page d'accueil du site mais dès que je tente en connexion le message persiste.évidement je ne reçois plus les mails non plus avec ce message d'erreur.

Est ce que quelqu'un pourrait m'aider s'il vous plait à comprendre mon erreur ?


Titre: Re:Encore une histoire de formulaire
Posté par: chaloupe le le 27-02-2012 a 12:13:09

après avoir posté je m'aperçois que la ligne 69 n'apparait pas différente sur le post donc je vous précise que c'est la ligne qui commence par echo' juste en dessous de @mail;
merci de votre compréhension et de votre aide eventuelle

Titre: Re:Encore une histoire de formulaire
Posté par: dandreaweb le le 27-02-2012 a 12:37:40

Bonjour Chaloupe,
il manque un guillemet à la fin et le point virgule. le dernier <p> est de trop

Essayer ça:
echo '<h3>Merci</h3><p>Votre message a été envoyé à la responsable de la pension.</p><p>Vous recevrez une réponse dans les meilleurs délais.</p>';

cordialement

Titre: Re:Encore une histoire de formulaire
Posté par: chaloupe le le 27-02-2012 a 12:50:27

bonjour et merci clicandweb je crois bien qu' à force de chercher à comprendre ce qui n'allait pas et de faire plusieurs essais j'ai fini par oublier l'apostrophe et le point virgule et mettre ce <p> en plus avant de vous copier le code mais je pense que ces erreurs n'y étaient pas au moment de mes assais. En tout cas si c'est vraiment si simple je vais vraiment avoir l'air d'une truffe blonde là !! bon je vais voir ce que ça donne avec les rectifications et je reviens
un grand merci en attendant clic

Titre: Re:Encore une histoire de formulaire
Posté par: chaloupe le le 27-02-2012 a 13:02:02

alors en fait le problème reste entier et se trouve précisément sur la ligne <a href
(juste en dessous), je me demande si l'adresse que je dois donner pour rediriger vers la page d'accueil doit être en html ou en php ?en effaçant cette ligne tout refonctionne mais forcement je n'ai plus de redirection.

Titre: Re:Encore une histoire de formulaire
Posté par: dandreaweb le le 27-02-2012 a 14:45:05

En fait Chaloupe je n'avais regardé que la ligne concernée.
Reprenez le code source du départ:

echo '<h3>Merci</h3><p>Votre message a été envoyé à la responsable de la pension.</p><p>Vous recevrez une réponse dans les meilleurs délais.</p><p>
<a href="http://www.nomdedomaine.fr">Retourner sur la page d'accueil</a></p>';

modifier page d'accueil
par page d\'accueil

Si ca ne marche envoyer le script complet je regarderai de plus prés.

Titre: Re:Encore une histoire de formulaire
Posté par: seoreference le le 27-02-2012 a 16:10:27

hello,

clicandweb a raison.

Essaies d'utiliser un editeur de texte avec coloration syntaxique (ex:notepad): cela t'aidera beaucoup !

Titre: Re:Encore une histoire de formulaire
Posté par: chaloupe le le 27-02-2012 a 16:16:31

ohhh genialissime !! mille merci ça fonctionne parfaitement grâce à ton conseil j'ai effectivement rajouté le \ avant l'apostrophe et j'arrive pas à y croire ça marche !!
Alors pour que je le sache une fois pour toute est ce que ce trait doit être rajouté chaque fois qu'il y a une expression avec une apostrophe ?

J'ose te poser une autre petite question concernant ce formulaire.
maintenant que cela fonctionne correctement si je souhaite créer ma page de remerciement je suppose que je dois échanger la partie du code que l'on vient de traiter par
header("Location: manouvellepagederemerciement.html") ?
ou dois je rajouter cette ligne en plus de ce qui est déjà existant ? et si oui où ?

bon ca fait trois questions :P j'espère que tu ne m'en tiendras pas rigueur.

vraiment merci clic tu m'as oter une épine du pied qui m'empechait d'avancer depuis trois jours


Titre: Re:Encore une histoire de formulaire
Posté par: chaloupe le le 27-02-2012 a 16:23:34

oups seoreference, le temps de rédiger mon post et d'envoyer, ta réponse est arrivée....merci à toi également, effectivement mon bloc note ne me facilite pas la tache mais j'arrive pas à passer à autre chose :-\ va savoir....

Titre: Re:Encore une histoire de formulaire
Posté par: dandreaweb le le 27-02-2012 a 18:44:23

c'est clicandweb, jai juste modifié mon pseudo.

Content d'avoir pu t'aider. ;). Effectivement si tu veux être rediriger vers ta page de remerciement tu remplaces :

echo '<h3>Merci</h3><p>Votre message a été envoyé à la responsable de la pension.</p><p>Vous recevrez une réponse dans les meilleurs délais.</p><p>
<a href="http://www.nomdedomaine.fr">Retourner sur la page d'accueil</a></p>';

par

header("Location: manouvellepagederemerciement.html");

Pour le bloc-notes, tu devrais essayer notepad++ qui est très simple d'utilisation et te permettra une meilleure lisibilité de ton code

A bientôt

Titre: Re:Encore une histoire de formulaire
Posté par: chaloupe le le 28-02-2012 a 08:51:27

Alors bonjour Dan :)

Tu peux être content ! moi je suis ravie !
D'autant qu'avec la dernière confirmation au sujet du header je vais pouvoir peaufiner tout ça.

J"ai une autre question concernant la mise en place d'un calendrier mais je pense qu'il faut ouvrir un nouveau post dans la rubrique javascript donc j'espère que tu pourras me suivre sur cette nouvelle question.

Bonne journée à tous et merci encore Dan. ;)

Titre: Re:Encore une histoire de formulaire
Posté par: dandreaweb le le 28-02-2012 a 09:20:19

De rien et bonne journée à toi ;)


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.