Problème avec mon formulaire de contact.

Gelecek01
Invité n'ayant pas de compte PHPfrance

03 déc. 2011, 19:34

Bonjour, j'ai créer un formulaire de contact mais le problème c'est qu'il ne fonctionne pas, est-ce que si je poste le code de mon formulaire ici quelqu'un pourra m'aider pour trouver la faille ?
Je demande car je suis nouveau sur ce forum.

olivier97360
Invité n'ayant pas de compte PHPfrance

04 déc. 2011, 02:54

Bonjour, tu peux poster je vais voir si je peux t'aider.

Gelecek01
Invité n'ayant pas de compte PHPfrance

04 déc. 2011, 10:23

Voici le code de mon formulaire, il est un peu long ....

<?php

$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

if (isset($_POST['envoi'])) {


$flag_erreur = 0;

session_start();


$_SESSION['champ1'] = $_POST['champ1'];
if (eregi("http",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut
comporter les caractères <b>http</b>";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut
comporter les caractères <B>[url</b>";
$flag_erreur = 1;
}
if (eregi("<a",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ
ne peut comporter des liens hypertexte.";
$flag_erreur = 1;
}
if (eregi("\[link",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <b>[link</b>";
$flag_erreur = 1;
}

$_SESSION['champ2'] = $_POST['champ2'];
//Contrôle du spam...
if (eregi("http",$_POST['champ2'])) {
$erreur_champ2 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <b>http</b>";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['champ2'])) {
$erreur_champ2 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <B>[url</b>";
$flag_erreur = 1;
}
if (eregi("<a",$_POST['champ2'])) {
$erreur_champ2 = "Pour raisons de sécurité, ce champ ne
peut comporter des liens hypertexte.";
$flag_erreur = 1;
}
if (eregi("\[link",$_POST['champ2'])) {
$erreur_champ2 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <b>[link</b>";
$flag_erreur = 1;
}
$_SESSION['zone_email1'] = $_POST['zone_email1'];


if (eregi("http",$_POST['zone_email1'])) {
$erreur_email1 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <b>http</b>";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['zone_email1'])) {
$erreur_email1 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <B>[url</b>";
$flag_erreur = 1;
}
if (eregi("<a",$_POST['zone_email1'])) {
$erreur_email1 = "Pour raisons de sécurité, ce champ ne
peut comporter des liens hypertexte.";
$flag_erreur = 1;
}
if (eregi("\[link",$_POST['zone_email1'])) {
$erreur_email1 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <b>[link</b>";
$flag_erreur = 1;
}
$_SESSION['liste1'] = $_POST['liste1'];


switch($_POST['bouton1']) {
case "Oui":
$_SESSION['bouton1'] = "Oui";
break;
case " Non":
$_SESSION['bouton1'] = " Non";
break;
default:
$_SESSION['bouton1'] = "";
}


switch($_POST['bouton2']) {
case "Oui":
$_SESSION['bouton2'] = "Oui";
break;
case " Non":
$_SESSION['bouton2'] = " Non";
break;
default:
$_SESSION['bouton2'] = "";
}

$_SESSION['zone_texte1'] = $_POST['zone_texte1'];

if (eregi("http",$_POST['zone_texte1'])) {
$erreur_texte1 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <b>http</b>";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['zone_texte1'])) {
$erreur_texte1 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <B>[url</b>";
$flag_erreur = 1;
}
if (eregi("<a",$_POST['zone_texte1'])) {
$erreur_texte1 = "Pour raisons de sécurité, ce champ ne
peut comporter des liens hypertexte.";
$flag_erreur = 1;
}
if (eregi("\[link",$_POST['zone_texte1'])) {
$erreur_texte1 = "Pour raisons de sécurité, ce champ ne
peut comporter les caractères <b>[link</b>";
$flag_erreur = 1;
}

$flag_icone = 0;

if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana,
Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}

if ($_POST['champ1'] == "") {
$erreur_champ1 = "Veuillez saisir votre prénom.";
$flag_erreur = 1;
}

if ($_POST['champ2'] == "") {
$erreur_champ2 = "Veuillez saisir votre nom.";
$flag_erreur = 1;
} // Fin du if...



if ($_POST['zone_email1'] == "") {
$erreur_email1 = "Veuillez saisir votre e-mail.";
$flag_erreur = 1;
} else {
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)
*(\.[a-z]{2,3})$", $_POST['zone_email1'])){
$erreur_email1 = "Votre adresse e-mail 1 n'est pas complète
ou contient des caractères invalides.";
$flag_erreur = 1;
}
}

if ($_POST['liste1'] == "") {
$erreur_liste1 = "Sélectionnée votre âge.";
$flag_erreur = 1;
} // Fin du if...


if (!isset($_POST['bouton1'])) {
$erreur_bouton1 = "Sélectionnée par oui
ou non le newster.";
$flag_erreur = 1;
} // Fin du if...


if (!isset($_POST['bouton2'])) {
$erreur_bouton2 = "Sélectionnée par oui
ou non les règles d\'envoie du photo de votre ville.";
$flag_erreur = 1;
}


if ($flag_erreur == 0) {


$email_dest = "*******@hotmail.fr";
$sujet = "********";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: ****** <*******
@gmail.com>\n";
$entetes .="Return-Path: *******<********
@gmail.com>\n";
$entetes .="Reply-To: ******<********
@gmail.com>\n";
$entetes .="Content-Type: text/html;
charset=iso-8859-1 \n";
$partie_entete = "<html>\n<head>\n<title>
Formulaire</title>\n<meta http-equiv=Content-Type content
=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";


$partie_champs_texte .= "<font face=\"Verdana\" size=
\"2\" color=\"#003366\">Prénom : = " . $_SESSION['champ1']
. "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\
" color=\"#003366\">Nicknam ou pseudo : = " . $_SESSION
['champ2'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\
" color=\"#003366\">Votre e-mail : = " . $_SESSION['zone_email1']
. "</font><br>\n";
$partie_listes .= "<font face=\"Verdana\" size=\"2\" color=
\"#003366\">Quelles est votre âge ? = " . $_SESSION['liste1']
. "</font><br>\n";
$partie_boutons .= "<font face=\"Verdana\" size=\"2\" color=
\"#003366\">Newster du site : = " . $_SESSION['bouton1']
. "</font><br>\n";
$partie_boutons .= "<font face=\"Verdana\" size=\"2\" color=
\"#003366\">Accepter vous les règles : = " . $_SESSION['bouton2']
. "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=
\"#003366\">Message : = " . $_SESSION['zone_texte1'] . "</font><br>\n";



$fin = "</body></html>\n\n";

$sortie = $partie_entete .
$partie_champs_texte . $partie_zone_email . $partie_listes .
$partie_boutons . $partie_cases . $partie_zone_texte . $fin;


if (@!mail($email_
dest,$sujet,$sortie,$entetes)) {
echo("Envoi du formulaire impossible");
exit();
} else {

header("Location:merci/mercie.html");
exit();
}
} ($flag_erreur == 0) {
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">



<head>
<title>Formulaire</title><script type="text/javascript"
language="JavaScript">
<!--

//<![CDATA[


function verifSelection() {


if (document.mail_form.champ1.value == "") {
alert("Veuillez saisir votre prénom.")
return false
}

if (document.mail_form.champ2.value == "") {
alert("Veuillez saisir votre nom.")
return false
}

if (document.mail_form.zone_email1.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_email1.value.indexOf
(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides
. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}

atPos = document.mail_form.zone_email1.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_email1.focus()
return false
}

if (document.mail_form.zone_email1.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_email1.focus()
return false
}

periodPos = document.mail_form.zone_email1.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_email1.focus()
return false
}

if (periodPos+3 > document.mail_form.zone_email1.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_email1.focus()
return false
}

if (document.mail_form.liste1.value == "") {
alert("Sélectionnée votre âge.")
return false
}

nbreboutons1 = document.mail_form.bouton1.length

flag = 0

for (i = 0; i < nbreboutons1 ; i++) {

if (document.mail_form.bouton1
[i].checked) {

flag = 1

}

}


if (flag == 0) {

alert("Sélectionnée par oui ou non le newster.")
return false;
}


nbreboutons2 = document.mail_form.
bouton2.length

flag = 0

for (i = 0; i < nbreboutons2 ; i++) {

if (document.mail_form.bouton
2[i].checked) {

flag = 1

}

}


if (flag == 0) {

alert("Sélectionnée par oui ou non les règles.")
return false;
}


}
//]]>
//-->
</script>
</head><body><form name="mail_form" method=
"post" action="<?php echo($_SERVER['PHP_SELF']); ?>
" onsubmit="return verifSelection()">
<div align="center"><font size="2" face="Verdana, Arial,
Helvetica, sans-serif, Tahoma"><strong>Formulaire
de contact</strong></font></div><br></br><table
align="center" width="566" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td height="16"><div align="center">
<font color="#CC0000" size="2" face="Verdana, Arial,
Helvetica, sans-serif, Tahoma"><strong><?php
if ($erreur_champ1) {
echo(stripslashes($erreur_champ1));
} else {
if ($erreur_champ2) {
echo(stripslashes($erreur_champ2));
} else {
if ($erreur_email1) {
echo(stripslashes($erreur_email1));
} else {
if ($erreur_liste1) {
echo(stripslashes($erreur_liste1));
} else {
if ($erreur_bouton1) {
echo(stripslashes($erreur_bouton1));
} else {
if ($erreur_bouton2) {
echo(stripslashes($erreur_bouton2));
} else {
if ($erreur_texte1) {
echo(stripslashes($erreur_texte1));
} else {
}
}
}
}
}
}
}
?>
</strong></font>
</div></td>
</tr>
</table>
<p align="center"></p><table width="566" border="0"
align="center"><tr>
<td width="140"><div align="right"><font face="
Verdana" size="2">Prénom :</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ1) {
echo($icone);
}
?>
</td>
<td><input name="champ1" type="text" value="
<?php echo(stripslashes($_SESSION['champ1'])); ?>">
</input></td>
</tr></table><table width="566" border="0" align="
center"><tr>
<td width="140"><div align="right"><font face="
Verdana" size="2">Nicknam ou pseudo :</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ2) {
echo($icone);
}
?>
</td>
<td><input name="champ2" type="text" value="
<?php echo(stripslashes($_SESSION['champ2'])); ?>">
</input></td>
</tr></table><table width="566" border="0" align="
center"><tr>
<td width="140"><div align="right"><font face=
"Verdana" size="2">Votre e-mail :</font></div></td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_email1) {
echo($icone);
}
?>
</td>
<td><input name="zone_email1" type="text"
value="<?php echo(stripslashes($_SESSION['zone_email1']));
?>"></input></td>
</tr></table><table width="566" border="0" align=
"center"><tr>
<td width="140"><div align="right"><font face=
"Verdana" size="2">Quelles est votre âge ?</font>
</div>
</td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_liste1) {
echo($icone);
}
?>
</td>
<td><select name="liste1" style="width:146">
<option value="">Sélectionner..
.</option>
<option value="Moins de 8 ans"<?php
if ($_SESSION['liste1'] == "Moins de 8 ans") {
echo(" selected");
}
?>>Moins de 8 ans</option>
<option value=" 9 ans"<?php
if ($_SESSION['liste1'] == " 9 ans") {
echo(" selected");
}
?>> 9 ans</option>
<option value=" 10 ans"<?php
if ($_SESSION['liste1'] == " 10 ans") {
echo(" selected");
}
?>> 10 ans</option>
<option value=" 11 ans"<?php
if ($_SESSION['liste1'] == " 11 ans") {
echo(" selected");
}
?>> 11 ans</option>
<option value=" 12 ans"<?php
if ($_SESSION['liste1'] == " 12 ans") {
echo(" selected");
}
?>> 12 ans</option>
<option value=" 13 ans"<?php
if ($_SESSION['liste1'] == " 13 ans") {
echo(" selected");
}
?>> 13 ans</option>
<option value=" 14 ans"<?php
if ($_SESSION['liste1'] == " 14 ans") {
echo(" selected");
}
?>> 14 ans</option>
<option value=" 15 ans"<?php
if ($_SESSION['liste1'] == " 15 ans") {
echo(" selected");
}
?>> 15 ans</option>
<option value=" Plus de 16 ans"<?php
if ($_SESSION['liste1'] == " Plus de 16 ans") {
echo(" selected");
}
?>> Plus de 16 ans</option>
</select></td></tr></table><table width="566"
border="0" align="center"><tr>
<td width="140"><div align="right"><font face=
"Verdana" size="2">Newster du site :</font></div>
</td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_bouton1) {
echo($icone);
}
?>
</td>
<td><input type="radio" name="bouton1"
value="Oui"<?php
if ($_SESSION['bouton1'] == "Oui") {
echo(" checked");
}
?>></input><font face="Verdana" size="2">
Oui</font><br /><input type="radio" name="
bouton1" value=" Non"<?php
if ($_SESSION['bouton1'] == " Non") {
echo(" checked");
}
?>></input><font face="Verdana" size="2">
Non</font></td></tr></table><table width=
"566" border="0" align="center"><tr>
<td width="140"><div align="right">
<font face="Verdana" size="2">Accepter vous les règles :
</font></div></td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_bouton2) {
echo($icone);
}
?>
</td>
<td><input type="radio" name="bouton2"
value="Oui"<?php
if ($_SESSION['bouton2'] == "Oui") {
echo(" checked");
}
?>></input><font face="Verdana" size="2">Oui</font>
<br /><input type="radio" name="bouton2" value=" Non"<?php
if ($_SESSION['bouton2'] == " Non") {
echo(" checked");
}
?>></input><font face="Verdana" size="2"> Non</font>
</td></tr></table><table width="566" border="0" align="center"><tr>
<td width="140" valign="top"><div align="right">
<font face="Verdana" size="2">Message :</font></div></td>
<td width="30" align="center" valign="top">
<?php
if ($erreur_texte1) {
echo($icone);
}
?>
</td>
<td><textarea name="zone_texte1" cols="45" rows="10"><?=stripslashes($_SESSION['zone_texte1']);?>
</textarea></td>
</tr></table><table width="566" border="0" align=
"center"><tr>
<td valign="top"><div align="center">
<input type="reset" name="Reset" value=" Effacer
"></input>

<input type="submit" name="envoi" value="Envoyer">
</input>
</div></td></tr></table><div align="center">
<input name="nbre_fichiers" type="hidden" id="
nbre_fichiers" value="0">
</input>
</div>
</form>
</body>
</html>

Le problème c'est que lorsque j'appuie sur envoyer, rien se passe et j'ai le message : Impossible de l'envoie du formulaire .

Eléphanteau du PHP | 10 Messages

06 déc. 2011, 07:05

est-ce que tu peux upload votre formulaire de contact? je donc peux trouver votre problème.

Gelecek01
Invité n'ayant pas de compte PHPfrance

06 déc. 2011, 13:47

D'accord mais on fais sa comment ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8756 Messages

06 déc. 2011, 15:26

salut,

hors mis le merdier général (quei, j'espère, est dû au copier / collé sur le forum ?) il y a :
} ($flag_erreur == 0) {

}
ligne 241 et suivantes qui génère une erreur de parse.

je te conseil d'activer les erreurs afin de mieux comprendre ce qui se passe.
surement dû à
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
ini_set("error_reporting", "E_ALL & ~E_NOTICE");
}

en devellopement l'error_reporting c'est E_ALL | E_STRICT ;)

eregi est "déprécié" et à remplacer par preg_match

@+
Il en faut peu pour être heureux ......