Problème avec un script
Fermé
Bonjour,
J'ai un petit soucis avec un script de formulaire de contact que j'ai trouvé sur le site www.unesourisetmoi.info. Le formulaire en lui même fonctionne à merveille. J'ai juste un pb au moment de l'envoi du formulaire (contact.php) : on doit être redirigé vers une page nommée merci.htm. J'ai donc rempli correctement les champs etc.....et au lieu d'arriver sur ma page, j'ai une page blanche et dans la barre d'adresse, tjrs celle de ma page contact....
Les deux fichiers sont à la racine du site, pas dans des dossiers séparés ou autre.
J'ai essayé de voir avec le webmaster du site, qui a bien tenté de comprendre, mais niet ; il m'a donc orienté vers vous....
SI vous avez besoin de plus d'infos, n'hésitez pas, je ne suis pas une habituée de votre forum.
J'ai un petit soucis avec un script de formulaire de contact que j'ai trouvé sur le site www.unesourisetmoi.info. Le formulaire en lui même fonctionne à merveille. J'ai juste un pb au moment de l'envoi du formulaire (contact.php) : on doit être redirigé vers une page nommée merci.htm. J'ai donc rempli correctement les champs etc.....et au lieu d'arriver sur ma page, j'ai une page blanche et dans la barre d'adresse, tjrs celle de ma page contact....
Les deux fichiers sont à la racine du site, pas dans des dossiers séparés ou autre.
J'ai essayé de voir avec le webmaster du site, qui a bien tenté de comprendre, mais niet ; il m'a donc orienté vers vous....
SI vous avez besoin de plus d'infos, n'hésitez pas, je ne suis pas une habituée de votre forum.
A voir également:
- Problème avec un script
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Script download - Télécharger - Édition & Programmation
23 réponses
Utilisateur anonyme
21 août 2009 à 18:44
21 août 2009 à 18:44
BG62 !!! C'est pour toi :-) !!
Tu fais le service après service ?
Tu fais le service après service ?
resalut
Messages postés
784
Date d'inscription
vendredi 26 juin 2009
Statut
Membre
Dernière intervention
21 janvier 2010
55
21 août 2009 à 18:45
21 août 2009 à 18:45
mdr pk tjr pour lui et moiii :p
"Mdr pk tjr pour lui et moiii :p"
Toi je sais pas, mais https://www.unesourisetmoi.info/ c'est le site de BG62.... donc là, y'a pas photos...
Toi je sais pas, mais https://www.unesourisetmoi.info/ c'est le site de BG62.... donc là, y'a pas photos...
resalut
Messages postés
784
Date d'inscription
vendredi 26 juin 2009
Statut
Membre
Dernière intervention
21 janvier 2010
55
21 août 2009 à 18:45
21 août 2009 à 18:45
plus serieusement on peut voir le script ?
resalut
Messages postés
784
Date d'inscription
vendredi 26 juin 2009
Statut
Membre
Dernière intervention
21 janvier 2010
55
21 août 2009 à 18:49
21 août 2009 à 18:49
bah si justement ya plein de photos :p ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ouh là ! vous êtes au taquet ^^
Voici le code de ma page
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?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 = "contact@xxxx.com";
if ($_POST['envoi']) {
// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: Formulaire de contact<contact@xxx.com>\n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";
$subject = "Formulaire de contact";
$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:http://www.xxxx.com/merci.htm");
exit();
} // Fin du else
} // Closing if edit
?>
<html>
<head>
<!-- META-TAGS by www.Swisstools.net -->
<TITLE>Formulaire de contact</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" LANG="fr" CONTENT="krys">
<META NAME="Description" CONTENT="......, ">
<META NAME="Identifier-URL" CONTENT="http://www.xxxx.com">
<META NAME="Reply-to" CONTENT="contact@xxxx.com">
<META NAME="revisit-after" CONTENT="10">
<META NAME="Publisher" CONTENT="krys">
<META NAME="Copyright" CONTENT="©2009 xxxx.com">
<title>Contact</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
<script language="JavaScript">function verifSelection() {if (document.mail_form.zone_email.value == "") {
alert("Veuillez saisir votre email")
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>
</head>
....
<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><font face="Verdana" size="2">Prénom</font></td>
<td><input name="champ2" 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="2">
<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_champ2" type="hidden" value="Pré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></div>
<div align="center">
...
</body>
</html>
Voici le code de ma page
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?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 = "contact@xxxx.com";
if ($_POST['envoi']) {
// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: Formulaire de contact<contact@xxx.com>\n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";
$subject = "Formulaire de contact";
$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:http://www.xxxx.com/merci.htm");
exit();
} // Fin du else
} // Closing if edit
?>
<html>
<head>
<!-- META-TAGS by www.Swisstools.net -->
<TITLE>Formulaire de contact</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Author" LANG="fr" CONTENT="krys">
<META NAME="Description" CONTENT="......, ">
<META NAME="Identifier-URL" CONTENT="http://www.xxxx.com">
<META NAME="Reply-to" CONTENT="contact@xxxx.com">
<META NAME="revisit-after" CONTENT="10">
<META NAME="Publisher" CONTENT="krys">
<META NAME="Copyright" CONTENT="©2009 xxxx.com">
<title>Contact</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
<script language="JavaScript">function verifSelection() {if (document.mail_form.zone_email.value == "") {
alert("Veuillez saisir votre email")
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>
</head>
....
<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><font face="Verdana" size="2">Prénom</font></td>
<td><input name="champ2" 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="2">
<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_champ2" type="hidden" value="Pré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></div>
<div align="center">
...
</body>
</html>
resalut
Messages postés
784
Date d'inscription
vendredi 26 juin 2009
Statut
Membre
Dernière intervention
21 janvier 2010
55
21 août 2009 à 18:58
21 août 2009 à 18:58
whaaah le bordel créer avec dreaweaver tiens :
http://simplycode.free.fr/ctrl/index.php?controle=generator&acte=dev
si ca peut t'aider ....
http://simplycode.free.fr/ctrl/index.php?controle=generator&acte=dev
si ca peut t'aider ....
Merci...juste une question bête.....je le mets où ce code dans ma page ? d'un bloc ou fractionné ? lapage doit s'appeler contact.php aussi ? Je débute en création de site.... merci
resalut
Messages postés
784
Date d'inscription
vendredi 26 juin 2009
Statut
Membre
Dernière intervention
21 janvier 2010
55
21 août 2009 à 19:08
21 août 2009 à 19:08
tu l'apel kom tu veux (avec l'extention php) tant que tu donne le meme nom( avec la meme extention donc php) dans le champ nom de la page générée :
resalut
Messages postés
784
Date d'inscription
vendredi 26 juin 2009
Statut
Membre
Dernière intervention
21 janvier 2010
55
21 août 2009 à 19:13
21 août 2009 à 19:13
body
Ca fonctionne super bien merci !!!!! Juste un détail ^^ je n'ai pas de champs email pour recontacter les gens, ou alors j'ai zappé un truc....
resalut
Messages postés
784
Date d'inscription
vendredi 26 juin 2009
Statut
Membre
Dernière intervention
21 janvier 2010
55
21 août 2009 à 19:44
21 août 2009 à 19:44
recreer un script complet en rajoutant un champ texte ;)
C'est ce que j'ai fais en attendant la réponse, seul hic.... il me sort ça maintenant
Parse error: syntax error, unexpected '=' in /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/contact.php on line 134
Parse error: syntax error, unexpected '=' in /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/contact.php on line 134
argh ! ça fonctionne à merveille quand je n'ai pas de champs texte appelé mail ou email ; dès que j'en mets un j'ai une page blanche et Parse error: syntax error, unexpected ',' in /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/contact.php on line 94
bg62
Messages postés
23712
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
18 avril 2025
2 404
22 août 2009 à 11:31
22 août 2009 à 11:31
ouai ben le bg il était parti aux champignons ... alors ... !
bon ....
premier fichier : contact1.php
en bonus : captcha.php !!!
ENSUITE : créer un fichier contact.php, personnalisé, avec le look du site ....
et y mettre un include pour appeler le formulaire :
(si tous les fichiers sont au même niveau, sinon changer le chemin de l'include ... !)
MAIS : grosse erreur que j'avais faite moi aussi : ce fichier DOIT AVOIR en PREMIERES LIGNES AVANT TOUTES CHOSES ceci :
voir dans les codes les commentaires (//commentaires ....) surtout pour intégrer l'adresse mail ( ... :)
là cela évitera le problème de la page "merci" car il y a certainement une grosse erreur : php + javascript (mieux vaut php seul ...) et très certainement chemin de la page à tester et retester car ça doit fonctionner puisque ça marche ailleurs ....
et je n'ai pas grand mérite ... on m'avait aussi aidé (au début !) sur le forum (merci Sylvain si je ne me trompe ...) ... mais c'est sur ça fonctionne, c'est sur, je me suis basé sur le mien !
mais je sens que je vais finir par en faire un tuto dans les astuces ...
nota: le champ 'téléphone' est facultatif (pas de vérification) donc on peut le supprimer ou le renommer ...
@+ bg
... un petit commentaire ... ????
bon ....
premier fichier : contact1.php
<?php define("ST_READY", 0); // La page a été appellée pour la 1ere fois (aucun bouton n'a donc pu être cliqué) define("ST_OK", 1); // La page a été appellée avec le bouton [Envoyer] et l'envoi du mail s'est bien passé define("ST_PREVIEW", 2); // La page a été avec le bouton [Prévisualiser] define("ST_ERROR", 3); // Une erreur s'est produite lors de la vérification de la page function remplacements_speciaux($txt) { $txt=preg_replace('#(<|>)#', '-', $txt); $txt=str_replace('"', "'",$txt); $txt=str_replace('&', 'et',$txt); return $txt; } function mail_valide($mail) { // La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; return preg_match($verif,$mail); } $reponse=""; // On regarde si la réponse a été postée par l'utilisateur if (isset($_POST['reponse'])) $reponse=$_POST['reponse']; $message=""; $objet=""; $votretelephone=""; $votremail=""; // On suppose qu'il y a une erreur par défaut même si ce n'est pas le cas. // Raisonnement par l'absurde en quelque sorte ... $status=ST_ERROR; //input button envoi/previsualiser $envoi=isset($_POST['envoi']) ? htmlentities($_POST['envoi']) : ""; $previsualiser=isset($_POST['previsualiser']) ? htmlentities($_POST['previsualiser']) : ""; if (isset($_POST['message'])) { //quelques remplacements pour les specialchars $message=remplacements_speciaux($_POST['message']); $objet=isset($_POST['objet']) ? remplacements_speciaux($_POST['objet']) : ""; // On assigne et/ou protège nos variables $votremail=stripslashes(htmlentities($_POST['votremail'])); $message=stripslashes(htmlspecialchars($message)); $objet=stripslashes(htmlspecialchars($objet)); $votretelephone=isset($_POST['votretelephone']) ? htmlentities($_POST['votretelephone']) : ""; //on enlève les espaces $votremail=trim($votremail); $message=trim($message); $objet=trim($objet); /*On vérifie si l'e mail et le message sont pleins, et on agit en fonction. (on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/ //Si ca ne vas pas (mal rempli, mail non valide...) if((empty($message)) or (empty($objet)) or (!mail_valide($votremail))) { //les 3 champs sont vides if(empty($votremail) and (empty($message)) and (empty($objet))) { $msgerr='Tous les champs sont vides.'; } //un des champs est vide else { if(!mail_valide($votremail)) { $msgerr='Votre adresse e-mail n\'est pas valide.'; } else { $msgerr='Il faut remplir tous les champs !'; } } } //Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi else { $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail); $DomaineMailExiste=checkdnsrr($domaine,'MX'); if(!$DomaineMailExiste) { $msgerr='Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.'; } elseif(!empty($previsualiser)) { $status=ST_PREVIEW; } elseif(!empty($envoi)) { // Test si la réponse au captcha est correcte ! if (isset($_SESSION['solution'])) { if ($_SESSION['solution'] != $reponse) { $msgerr="Mauvaise réponse à la question posée ! Réessayez."; } else { $objet='[contact SITE] : '.$objet; $destinataire='mone-mailamoi@mondomaine.ici'; //A MODIFIER $mail=$destinataire; $headers='From:'.$votremail."\r\n". 'Subject:'.$objet."\r\n". 'Content-type: text/plain; charset=ISO-8859-1'."\r\n". 'Sent:'.date('l, F d, Y H:i'); $message = $message."\nTéléphone : ".$votretelephone; if(mail($destinataire,$objet,$message,$headers)) { $status=ST_OK; } else { $msgerr='Un problème est survenu durant l\'envoi du mail.'; } } } else { $msgerr="Votre session a expirée ! Veuillez répondre de nouveau à la question puis valider."; } } else { $msgerr='Une condition innatendue est survenue lors de l\'exécution du script.'; } } } else { $status=ST_READY; } switch ($status) { case ST_READY : echo '<p>Tous les champs doivent être renseignés, merci.</p>'; break; case ST_OK : echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>'; break; case ST_PREVIEW : echo '<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés. <br />Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer" sans oublier de répondre à la question posée.<br />Prévisualisation :</p>'; break; case ST_ERROR : if (isset($msgerr) && !empty($msgerr)) { echo "<p>".$msgerr."</p>"; } else { echo "<p>Erreur non prévue !</p>"; } break; } ?> <form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"" enctype="multipart/form-data"> <p id='obj'>Utilisez ce formulaire et je vous réponds au plus vite, merci</p> <p> <label for='objet'>Objet de votre message :<br /> <input type='text' name='objet' id='objet' tabindex='10' size='50' value='<?php echo $objet;?>' /> </label> </p> <p id="adr"> <label for="mail">Votre Adresse E-mail<br /> <input name="votremail" tabindex="20" size="40" type="text" id="mail" value="<?php echo $votremail; ?>" /> </label> </p> <p id="tel"> <label for="telephone">Votre téléphone(si vous désirez être contactés)<br /> <input name="votretelephone" tabindex="30" size="30" type="text" id="telephone" value="<?php echo $votretelephone ?>" /> </label> </p> <p id="msg"> <label for="message">Votre message<br /> <textarea tabindex="40" rows="10" cols="50" name="message" id="message"><?php echo $message; ?></textarea> </label> </p> <?php include("captcha.php"); // >>>>>>> VOIR LE FICHIER captcha.php $captcha=new capcha(); // Création d'un nouvel objet (instance) de classe capcha $bouton_previsualiser='<p class="bt"><input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser" /></p>'; $bouton_envoi='<p class="bt">'.$captcha->q().' <input type="text" name="reponse" id="reponse" size="4"> '. '<input name="envoi" tabindex="4" value="Envoyer" type="submit" /></p>'; switch ($status) { case ST_READY : echo $bouton_previsualiser.$bouton_envoi; break; case ST_PREVIEW : echo $bouton_envoi; break; case ST_ERROR : echo $bouton_previsualiser.$bouton_envoi; break; } if (isset($_SESSION)) { session_destroy(); } session_start(); // Restaure la session précédente ou démarre ou nouvelle session // Sauvegarde dans la session de la réponse attendue issue du captcha $_SESSION['solution'] = substr($captcha->word,$captcha->num-1,1); ?> </form>
en bonus : captcha.php !!!
<?php class capcha{ var $min; var $max; var $alphabet; var $word; var $num; var $numletter; function capcha(){ $this->min = 4; $this->max = 6; $this->alphabet = 'abcdefghijklmnopqrstuvwxyz';//>>>>> ON PEUT AJOUTER DES MAJUSCULES SI L ON VEUT $this->grain_de_sel = '6tIb90ZAS11'; $this->word = $this->createWord(); $this->num = $this->chooseNum(); $this->numletter = $this->num2letter(); } function q(){ return 'Quelle est la '.$this->numletter.' lettre du mot '.$this->word.' ?'; } function createWord(){ $len = rand($this->min,$this->max); for($i=0;$i<$len;$i++){ $word[$i] = $this->alphabet[rand(0,strlen($this->alphabet)-1)]; } return implode('',$word); } function chooseNum(){ return rand(1,strlen($this->word)); } function num2letter(){ if($this->num == strlen($this->word)){ return 'dernière'; } $array = array('1' => 'première','2' => 'deuxième','3' => 'troisième','4' => 'quatrième','5' => 'cinquième','6' => 'sizième','7' => 'septième','8' => 'huitième','9' => 'neuvième','10' => 'dixième'); if(isset($array[$this->num])){ return $array[$this->num]; }else{ return $this->num.'.ème'; } } function r(){ return md5($this->grain_de_sel.$this->word[$this->num-1]); } } ?>
ENSUITE : créer un fichier contact.php, personnalisé, avec le look du site ....
et y mettre un include pour appeler le formulaire :
<?php include "form1.php"; ?></p>dans la parie 'body' là où l'on désire qu'il s'affiche !
(si tous les fichiers sont au même niveau, sinon changer le chemin de l'include ... !)
MAIS : grosse erreur que j'avais faite moi aussi : ce fichier DOIT AVOIR en PREMIERES LIGNES AVANT TOUTES CHOSES ceci :
<?php if (!isset($_SESSION)) { session_start(); // Restaure la session précédente ou démarre ou nouvelle session } ?> <!DOCTYPE HTML PUBLIC etc .... avec le bon doctype de la page ....
voir dans les codes les commentaires (//commentaires ....) surtout pour intégrer l'adresse mail ( ... :)
là cela évitera le problème de la page "merci" car il y a certainement une grosse erreur : php + javascript (mieux vaut php seul ...) et très certainement chemin de la page à tester et retester car ça doit fonctionner puisque ça marche ailleurs ....
et je n'ai pas grand mérite ... on m'avait aussi aidé (au début !) sur le forum (merci Sylvain si je ne me trompe ...) ... mais c'est sur ça fonctionne, c'est sur, je me suis basé sur le mien !
mais je sens que je vais finir par en faire un tuto dans les astuces ...
nota: le champ 'téléphone' est facultatif (pas de vérification) donc on peut le supprimer ou le renommer ...
@+ bg
... un petit commentaire ... ????
Merci BG ; je vais regarder ça et tester. Je vous tiens au courant.
bg62
Messages postés
23712
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
18 avril 2025
2 404
22 août 2009 à 19:23
22 août 2009 à 19:23
ok @+
:)
:)
2 questions, non 3 en fait...^^
1- form1.php = contact1.php ?
2- dans quelle partie dois-je mettre le code ?
3- captcha.php ? je le mets où ?
Merci encore 1000 fois pour votre aide.
1- form1.php = contact1.php ?
2- dans quelle partie dois-je mettre le code ?
3- captcha.php ? je le mets où ?
Merci encore 1000 fois pour votre aide.
bon alors, résultats des courses.....
j'ai compris toute seule ^^ pour captcha :p
Le formulaire s'envoie bien, je le reçoit sans pb, ceci dit, sur ma page où se trouve le formulaire de contact au design du site, tout en bas j'ai ça :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/contact.php:16) in /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/form1.php on line 246
j'ai compris toute seule ^^ pour captcha :p
Le formulaire s'envoie bien, je le reçoit sans pb, ceci dit, sur ma page où se trouve le formulaire de contact au design du site, tout en bas j'ai ça :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/contact.php:16) in /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/form1.php on line 246
bg62
Messages postés
23712
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
18 avril 2025
2 404
22 août 2009 à 20:30
22 août 2009 à 20:30
lis bien cette partie :
ta page va s'appeler contact.php
tu la crées normalement au look de ton site en html au début si tu veux et dès que tu mets la ligne pour l'include ET le code d'ouverture du php (tout en haut) tu l'enregistre en contact.php
créer un fichier contact.php, personnalisé, avec le look du site .... et y mettre un include pour appeler le formulaire :
ta page va s'appeler contact.php
tu la crées normalement au look de ton site en html au début si tu veux et dès que tu mets la ligne pour l'include ET le code d'ouverture du php (tout en haut) tu l'enregistre en contact.php
Bonjour à tous !
Merci BG pour ton aide. J'ai exactement fait cela, puisqu'au départ, j'avais une page contact.htm au design de mon site, et donc, cette page, j'y ai mis le include et l'ai nommée contact.php.
Le formulaire fonctionne, c'est juste cette chose que j'ai une fois que le mail est parti qui apparait en bas de ma page: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/contact.php:16) in /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/form1.php on line 246
Je vais tout recommencer voir si je fais vraiment n'importe quoi....
Merci BG pour ton aide. J'ai exactement fait cela, puisqu'au départ, j'avais une page contact.htm au design de mon site, et donc, cette page, j'y ai mis le include et l'ai nommée contact.php.
Le formulaire fonctionne, c'est juste cette chose que j'ai une fois que le mail est parti qui apparait en bas de ma page: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/contact.php:16) in /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/form1.php on line 246
Je vais tout recommencer voir si je fais vraiment n'importe quoi....
Bon je dois vraiment faire n'importe quoi, je sais pas, ça commence à me fatiguer...je pensais pas que c'était si complexe de mettre un formulaire de contact simple au design de mon site. Maintenant, le formulaire n'apparait plus et j'ai toujours cette phrase : Parse error: syntax error, unexpected '?' in /mnt/web3/20/45/52148945/htdocs/adeuxmainstenant/form1.php on line 148
bg62
Messages postés
23712
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
18 avril 2025
2 404
23 août 2009 à 19:48
23 août 2009 à 19:48
fais une page toute simple uniquement le menu et le reste vierge, tu la mets dans un zip et tu me l'envoies
je verrai ce que je peux faire .....
:)
je verrai ce que je peux faire .....
:)