Page 1 sur 1

Besoin d'aide formulaire de contact

Posté : 23 avr. 2010, 12:19
par Fan
Bonjour,

Voila j'ai pour mission de creer un site web pour un ami. Je suis une casi néophyte en html mais je me debrouille. J'ai voulu intégrer une rubrique "Contact" au site avec un formulaire de contact. Donc j'ai trouvé un générateur de script php pour faire un formaulaire de contact.

J'ai bien suivie toutes les étapes du générateur pour intégrer le script dans ma page contact de mon kit graphique (le php en tout début de la page de mon kit graphique, le javascript entre <head></head> et le html entre <body></body>). Puis j'ai enregistré ma page avec l'extension .php.
Mais des que je l'ouvre dans mon navigateur Firefox c'est un peu une horreur... :cry:

Tout d'abord, j'ai un message je pense d'erreur qui s'affiche tout en haut de ma page qui est lié au php :

Code : Tout sélectionner

\n"; $headers .="Content-Type: text/html; charset=iso-8859-1 \n"; $subject = "Réponse à votre message"; $partie_entete = " "; for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) { $partie_champs_texte .= "" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . " "; } if ($_POST['nbre_zone_email'] != 0) { $partie_zone_email = "" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . " "; } if ($_POST['nbre_zones_texte'] != 0) { $partie_zone_texte = "" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . " "; $partie_zone_texte = stripslashes($partie_zone_texte); } $fin = ""; $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; // Send the e-mail if (@!mail($email_dest,$subject,$sortie,$headers)) { echo("Envoi du formulaire impossible"); } else { // Closing if !mail... // Renvoi à la page de remerciement header("Location:file:///C:/Documents%20and%20Settings/Administrateur/Mes%20documents/T%C3%A9l%C3%A9chargements/template106/contact-merci.html"); exit(); } // Fin du else } // Closing if edit ?>
Ensuite, un gros soucis également, c'est que le générateur de ce script propose une redirection vers une page de remerciement une fois que l'on a cliqué sur "Envoyer". J'ai donc créer une page en .htm prévue a cet effet. Cette page se trouve dans le dossier template de mon kit graphique avec toutes les autres pages, y compris celle de mon formulaire de contact. Or, lorsque je clique sur le bouton "Envoyer" j'ai un message d'erreur classique de Firefox comme quoi il ne trouve pas la page :

Code : Tout sélectionner

Fichier introuvable Firefox ne peut trouver le fichier à l'adresse /C:/Documents and Settings/Administrateur/Mes documents/Téléchargements/template106/<?=$_SERVER['PHP_SELF']?>. * Vérifiez la syntaxe du nom de fichier (dont le respect des minuscules/majuscules) ; * Vérifiez si le fichier n'a pas été déplacé, renommé ou supprimé.
Enfin, un petit détail facultatif, j'aimerai bien que le mot "Message" se trouve juste en dessous de "E-mail".

Voici le php :

Code : Tout sélectionner

<?php // N'afficher que les erreurs, pas les avertissements... ini_set("error_reporting", "E_ALL & ~E_NOTICE"); // Adresse de réception du formulaire $email_dest = "[email protected]"; if ($_POST['envoi']) { // E-mail headers: $headers ="MIME-Version: 1.0 \n"; $headers .="From: PTM Online<[email protected]>\n"; $headers .="Content-Type: text/html; charset=iso-8859-1 \n"; $subject = "Réponse à votre message"; $partie_entete = "<html><head> <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1> </head> <body bgcolor=#FFFFFF>"; for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) { $partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>"; } if ($_POST['nbre_zone_email'] != 0) { $partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>"; } if ($_POST['nbre_zones_texte'] != 0) { $partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>"; $partie_zone_texte = stripslashes($partie_zone_texte); } $fin = "</body></html>"; $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; // Send the e-mail if (@!mail($email_dest,$subject,$sortie,$headers)) { echo("Envoi du formulaire impossible"); } else { // Closing if !mail... // Renvoi à la page de remerciement header("Location:file:///C:/Documents%20and%20Settings/Administrateur/Mes%20documents/T%C3%A9l%C3%A9chargements/template106/contact-merci.html"); exit(); } // Fin du else } // Closing if edit ?>
le javascript :

Code : Tout sélectionner

<script language="JavaScript">function verifSelection() {if (document.mail_form.champ1.value == "") { alert("Veuillez saisir votre nom") return false } if (document.mail_form.zone_email.value == "") { alert("Veuillez saisir votre e-mail") return false } invalidChars = " /:,;'" for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters? badChar = invalidChars.charAt(i) if (document.mail_form.zone_email.value.indexOf(badChar,0) > -1) { alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") document.mail_form.zone_email.focus() return false } } atPos = document.mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol if (atPos == -1) { alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') document.mail_form.zone_email.focus() return false } if (document.mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') document.mail_form.zone_email.focus() return false } periodPos = document.mail_form.zone_email.value.indexOf(".",atPos) if (periodPos == -1) { // and at least one "." after the "@" alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') document.mail_form.zone_email.focus() return false } if (periodPos+3 > document.mail_form.zone_email.value.length) { // must be at least 2 characters after the alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') document.mail_form.zone_email.focus() return false }if (document.mail_form.zone_texte.value == "") { alert("Veuillez laisser un message") return false } } // Fin de la fonction </script>
et le html :

Code : Tout sélectionner

<form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()"> <div align="center"></div> <p align="center"> <table width="566" border="0" align="center"> <p align="center"> </p><tr> <td><font face="Verdana" size="2">Nom</font></td> <td><input name="champ1" type="text"></td> </tr><tr> <td width><font face="Verdana" size="2">E-mail</font></td> <td width><input name="zone_email" type="text"></td> </tr><tr> <td valign="top"><font face="Verdana" size="2">Message</font></td> <td><textarea name="zone_texte" cols="50" rows="10"></textarea></td> </tr><tr> <td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="1"> <input name="nbre_zones_texte" type="hidden" value="1"> <input name="nbre_zone_email" type="hidden" value="1"> <input name="titre_champ1" type="hidden" value="Nom"><input name="titre_email" type="hidden" value="E-mail"><input name="titre_zone" type="hidden" value="Message"></td> <td><div align="center"> <input type="reset" name="Reset" value="Effacer"> <input type="submit" name="envoi" value="Envoyer"> </div></td> </tr> </table> <div align="center"></div> </form>
et un aperçu de ma page :
http://img96.imageshack.us/i/contactldr.jpg/

Voilà, je vous remercie d'avance si vous pouvez m'aider car ca fait depuis 2 jours que je galère la dessus :oops: :cry:
Cordialement,

Fan

Re: Besoin d'aide formulaire de contact

Posté : 23 avr. 2010, 17:08
par Toons43
Bonjour,

A mon avis tu n'as pas installé de serveur local sur ton PC, regarde du côté de EasyPHP pour lire du PHP en local. Sinon tu peux mettre les fichiers sur ton serveur en FTP.
Il faudra que tu change également le chemin vers la page de remerciement, tu n'es d'ailleurs pas obligé de mettre une page de remerciement, il te suffit de supprimer et de modifier comme suit le php :
// Send the e-mail
$resultat = mail($email_dest,$subject,$sortie,$headers);
if($resultat) {
$message = 'Votre message a bien été envoyé';
} else {
$message = 'Echec dans l\'envoi de votre message';
} // Fin du else
} // Closing if edit
Ensuite pour afficher le message tu mets juste avant la balise form du html
<?php if(isset($message)) { echo $message; } ?>
J'espère que ça pourra t'aider

Re: Besoin d'aide formulaire de contact

Posté : 23 avr. 2010, 17:13
par kopax
Perso j'ai pas tout lu mais c'est le bordel ton script 8-|

Utilise les balises php pour montré du php, html pour montré du html etc... pour qu'il y ai les couleurs tu donne beaucoup de code.
Ensuite il faut remplacé les <? par <?php
Par exemple
<form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
devrai devenir ca :
<form name="mail_form" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" onSubmit="return verifSelection()">

Enfin j'ai pas tout vu mais il à pas l'air top, essai de trouvé un script à édité, sans générateur, avec des explications, sur le site du zero il font un tutorial très détaillé pas à pas pour envoyé des mails.

C'est toujours mieux que les générateurs qui fonctionne mal et son rarement adapté au besoin réel.
http://www.siteduzero.com/tutoriel-3-35 ... n-php.html

Jette un coup d'oeil

Re: Besoin d'aide formulaire de contact

Posté : 23 avr. 2010, 22:16
par Fan
Ok merci a vous. :)

Toons, donc si j'upload sur mon ftp la page telle que je la vois en local, il n'y aura pas le message d'erreur en ligne si je comprends bien ?