Récupération données formulaire

Fermé
pegase44 - 25 oct. 2010 à 15:14
 pegase44 - 25 oct. 2010 à 18:26
Bonjour,

Cela fait plusieurs jours que je teste tout ce que je trouve sur Internet pour pouvoir récupérer correctement les infos de mon formulaire mis en ligne. Pas mal de personnes ne peuvent pas s'en servir.
Et tout ce que je fais jusqu'à présent ne marche pas... je finis par ne plus rien y comprendre.
Je mets ci-dessous le code de mes 2 fichiers, pour voir si quelqu'un pouvait me le corriger.


FICHIER FORMULAIRE.HTM :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title>Contacter l'Association Carterie Chateaulin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
@import url("../iconographie/feuilledestyle.css");
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>
<form method="post" action="monformulaire.php" target="blank">

<body onLoad="MM_preloadImages('../iconographie/bt_bas_infos.gif','../iconographie/bt_bas_contact.gif','../iconographie/bt_bas_rdvmaison.gif','../iconographie/bt_bas_fete.gif','../iconographie/bt_bas_amis.gif','../iconographie/bt_bas_annonces.gif','../iconographie/bt_bas_parole.gif','../iconographie/bt_bas_histoire.gif','../iconographie/bt_bas_cr.gif')">
<table width="80%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="33%" bgcolor="#990000"><div align="center"><a href="../index.htm" target="_parent"><img src="../iconographie/logo_blanc.gif" width="191" height="112" border="0"></a></div></td>
<td width="67%" bgcolor="#99FF00" class="titrerubrique"><div align="center">CONTACTEZ-NOUS</div></td>
</tr>
<tr>
<td valign="top" bgcolor="#99FF00">
<p align="center"><br>
<br>
<a href="../infospratiques/infospratiques.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('infos','','../iconographie/bt_bas_infos.gif',1)"><img src="../iconographie/bt_haut_infos.gif" name="infos" width="65" height="65" border="0"></a>
      <a href="../formulaire/formulaire.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('contact','','../iconographie/bt_bas_contact.gif',1)"><img src="../iconographie/bt_haut_contact.gif" name="contact" width="84" height="57" border="0"></a>
<br>
<a href="../rdvmaison/rdvmaison.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('rdvmaison','','../iconographie/bt_bas_rdvmaison.gif',1)"><img src="../iconographie/bt_haut_rdvmaison.gif" name="rdvmaison" width="215" height="36" border="0"></a>
<br>
<a href="../fete/fete.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('fete','','../iconographie/bt_bas_fete.gif',1)"><img src="../iconographie/bt_haut_fete.gif" name="fete" width="156" height="36" border="0"></a>
<br>
<a href="../amis/amis.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('amis','','../iconographie/bt_bas_amis.gif',1)"><img src="../iconographie/bt_haut_amis.gif" name="amis" width="82" height="36" border="0"></a>
</p>
<p align="center"><a href="../annonces/annonces.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('annonces','','../iconographie/bt_bas_annonces.gif',1)"><img src="../iconographie/bt_haut_annonces.gif" name="annonces" width="150" height="56" border="0"></a><br>
<a href="../parole/parole.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('parole','','../iconographie/bt_bas_parole.gif',1)"><img src="../iconographie/bt_haut_parole.gif" name="parole" width="107" height="72" border="0"></a>
</p>
<p align="center"><a href="../histoire/histoire.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('histoire','','../iconographie/bt_bas_histoire.gif',1)"><img src="../iconographie/bt_haut_histoire.gif" name="histoire" width="153" height="36" border="0"></a>
<br>
<a href="../cr/cr.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('cr','','../iconographie/bt_bas_cr.gif',1)"><img src="../iconographie/bt_haut_cr.gif" name="cr" width="185" height="36" border="0"></a>
</p>
</td>
<td valign="top"> <form name="form1" method="post" action="monformulaire.php" target="_blank">
<br>
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td class="soussoustitre">Nom :</td>
<td><input name="nom" type="text" id="nom" style="background-color:99FF00" size="50"></td>
</tr>
<tr>
<td class="soussoustitre">Prénom :</td>
<td><input name="prenom" type="text" id="prenom" style="background-color:99FF00" size="50"></td>
</tr>
<tr>
<td class="texte">Adresse :</td>
<td><input name="adresse1" type="text" id="adresse1" style="background-color:99FF00" size="50"></td>
</tr>
<tr>
<td> </td>
<td><input name="adresse2" type="text" id="adresse2" style="background-color:99FF00" size="50"></td>
</tr>
<tr>
<td class="texte">Code postal :</td>
<td><input name="cp" type="text" id="cp" style="background-color:99FF00" size="5"></td>
</tr>
<tr>
<td class="texte">Ville :</td>
<td><input name="ville" type="text" id="ville" style="background-color:99FF00" size="50"></td>
</tr>
<tr>
<td class="soussoustitre">Mail* :</td>
<td><input name="email" type="text" id="email" style="background-color:99FF00" size="50"></td>
</tr>
<tr>
<td class="texte">Téléphone :</td>
<td><input name="phone" type="text" id="phone" style="background-color:99FF00" size="15"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="texte">Sujet :</td>
<td><input name="annonce" type="checkbox" id="annonce" style="background-color:99FF00" value="checkbox">
<span class="texte">Passer une annonce</span></td>
</tr>
<tr>
<td> </td>
<td><input name="membre" type="checkbox" id="membre" style="background-color:99FF00" value="checkbox">
<span class="texte">Devenir membre</span></td>
</tr>
<tr>
<td> </td>
<td><input name="parole" type="checkbox" id="parole" style="background-color:99FF00" value="checkbox">
<span class="texte">Envoyer un message "La parole est à
vous"</span></td>
</tr>
<tr>
<td> </td>
<td><input name="rdvm" type="checkbox" id="rdvm" style="background-color:99FF00" value="checkbox">
<span class="texte">Proposer un "Rendez-vous à la maison"</span></td>
</tr>
<tr>
<td> </td>
<td><input name="autre" type="checkbox" style="background-color:99FF00" value="checkbox">
<span class="texte">Autre</span></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td valign="top" class="soussoustitre">Message :</td>
<td><textarea name="message" cols="50" rows="7" id="message" style="background-color:99FF00"></textarea></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="Submit" style="background-color:99FF00" value="Envoyer"></td>
</tr>
</table>
<blockquote>
<p class="texte"><strong>Les champs marqués d'un * sont obligatoires.</strong></p>
</blockquote>
</form>
<blockquote>
<p align="justify" class="texte">Si vous avez des soucis avec ce formulaire,
parfois capricieux, vous pouvez nous contacter directement sur <a href="mailto:postmaster@asso-carterie-chateaulin.fr"><span class="mail">postmaster@asso-carterie-chateaulin.fr</span></a>,
en indiquant les champs obligatoires précisés ci-dessus.</p>
<p align="justify" class="texte"><span class="soussoustitrerouge">ASSOCIATION
CARTERIE-CHATEAULIN</span><br>
18 bis rue Bonnamen<br>
44000 NANTES<br>
Tél. 06.47.68.76.26</p>
</blockquote></td>
</tr>
</table>


</body>
</html>

FICHIER MONFORMULAIRE.PHP (je n'ai pas enlevé les infos) :
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = "kmottais@numericable.fr";

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"formulaire.htm\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}

// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};

/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};

// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$adresse1 = (isset($_POST['adresse1'])) ? Rec($_POST['adresse1']) : '';
$adresse2 = (isset($_POST['adresse2'])) ? Rec($_POST['adresse2']) : '';
$cp = (isset($_POST['cp'])) ? Rec($_POST['cp']) : '';
$ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$phone = (isset($_POST['phone'])) ? Rec($_POST['phone']) : '';
$annonce = (isset($_POST['annonce'])) ? Rec($_POST['annonce']) : '';
$membre = (isset($_POST['membre'])) ? Rec($_POST['membre']) : '';
$parole = (isset($_POST['parole'])) ? Rec($_POST['parole']) : '';
$rdvm = (isset($_POST['rdvm'])) ? Rec($_POST['rdvm']) : '';
$autre = (isset($_POST['autre'])) ? Rec($_POST['autre']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

if (($nom != '') && ($prenom != '') && ($email != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};

// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);

// Envoi du mail
if (mail($cible, $nom, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="formulaire.htm">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>

MERCI BEAUCOUP SI VOUS POUVIEZ M'AIDER

3 réponses

Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
25 oct. 2010 à 16:19
Cela depend du navigateur internet utilisé .
Y a une serie de test a faire avant l utilisation de fonction.
Je t avoue qu il faut une certaine determination pour aller dans ton code ..

sinon les ligne SMTP du php.ini de l hebergeur n 'est pas activé..
Extrait du php.ini
[mail function]
; For Win32 only.
SMTP = smtp.provider.fr
;smtp_port = 25

Voila deja deux pistes.
Bon courage.
0
Merci de t'être penché sur la question et pour ta réponse...
Effectivement, j'ai tout mis (toute ma mise en page et ma navigation y sont !!!)
je n'avais vu nulle part qu'il fallait spécifier le smtp de mon provider (je croyais que c'était automatique).
Je vais donc rajouter ça, mais je pense qu'il faut que je corrige encore mon code... les infos ne sont jamais les mêmes selon les forums... et j'ai dû, à force, tout mélanger mon code.
En tout cas, merci
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
25 oct. 2010 à 17:51
Salut.

Déjà quand on voit que la balise <form> est ouverte entre </head> et <body>, ça ne donne pas envie d'aller plus loin.

Pour information, les tableaux ne servent pas à la mise en page ni à l'alignement des formulaires. Tu peux utiliser le CSS pour ça.

De plus, tu n'as pas utiliser la balise <.code> (sans le point) de CCM, donc l'indentation est perdue, ton code est totalement illisible.

Essaye avec ça :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913099-transmettez-des-donnees-avec-les-formulaires
0
OK ! Je m'en doutais, c'est devenu n'importe quoi. Déjà, J'étais persuadée d'avoir mis ma balise <form> entre <body> et </body>... sans doute parce que j'y ai passé presque ma nuit
Je vais sur siteduzero.... rien que le nom me semble prédestiné !
Merci de ton aide !
0