Question sur les formulaires

Aurelsicoko Messages postés 160 Statut Membre -  
reltak Messages postés 262 Statut Membre -
Bonjour,

Je voudrais créer un formulaire mais un peu spécial. En faite je voudrais un formulaire où l'on remplit:
- Nom
- Prénom
- Adresse email
- Objet
- Votre message

Puis après le message il y a un bouton "contacter" mais au niveau de ce bouton je veux pas qu'il m'envoi tout ca sur le serveur mais à une adresse email.

Est ce possible? Si oui est ce que quelq'un aurait la gentillesse de me taper ce code.

Merci

5 réponses

reltak Messages postés 262 Statut Membre 41
 
Salut,

Dans quel langage est-ce que tu le fais ?
Du HTML ou du PHP peut-être ?

Reltak.
0
Aurelsicoko Messages postés 160 Statut Membre 4
 
Je le fais en html pas en php mais je crois que je viens de trouver un site pas mal
"https://www.unesourisetmoi.info/formulaire/"

Je pense l'aavoir créer mais je suis pas sur du tout.

Voilà le code:

<?php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {


//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['champ3'] = $_POST['champ3'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];

//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
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\"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {

// Addresse de réception du formulaire
$email_dest = "studiographisme@hotmail.fr";
$sujet = "Votre commande";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: Studio Graphisme<studiographisme>\n";
$entetes .="Return-Path: Studio Graphisme<studiographisme>\n";
$entetes .="Reply-To: Studio Graphisme<studiographisme>\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 HTML de l'e-mail...
$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\">Nom = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Objet = " . $_SESSION['champ3'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre email = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Message = " . $_SESSION['zone_texte1'] . "</font><br>\n";


// Fin du message HTML
$fin = "</body></html>\n\n";

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


// Send the e-mail
if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
echo("Envoi du formulaire impossible");
exit();
} else {

// Rediriger vers la page de remerciement
header("Location:http://www.studiographisme.biz/validation.htm");
exit();
} // Fin else
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?>
<html>
<!--
Assistant de création de formulaires PHP pour les nuls - Version gratuite 1.6
Auteur : Frédéric Ménard (assistant@f1-fantasy.net)
Site : http://www.f1-fantasy.net/assistant
-->
<head>
<title>Formulaire</title><script language="JavaScript">


function verifSelection() {


if (document.mail_form.champ1.value == "") {
alert("Veuillez remplir ce champ (Prénom)")
return false
}

if (document.mail_form.champ3.value == "") {
alert("Veuillez remplir ce champ (Objet)")
return false
}

if (document.mail_form.zone_email1.value == "") {
alert("Votre indiquez votre adresse 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_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.zone_texte1.value == "") {
alert("Découvrez votre commande")
return false
}

} // Fin de la fonction
</script>
</head><body><form name="mail_form" method="post" action="<?=$_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><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_champ3) {
echo(stripslashes($erreur_champ3));
} else {
if ($erreur_email1) {
echo(stripslashes($erreur_email1));
} else {
if ($erreur_texte1) {
echo(stripslashes($erreur_texte1));
} else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du 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="<?=stripslashes($_SESSION['champ1']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Nom</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ2) {
echo($icone);
}
?>
</td>
<td><input name="champ2" type="text" value="<?=stripslashes($_SESSION['champ2']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Objet</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ3) {
echo($icone);
}
?>
</td>
<td><input name="champ3" type="text" value="<?=stripslashes($_SESSION['champ3']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Votre email</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="<?=stripslashes($_SESSION['zone_email1']);?>"></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 type="submit" name="envoi" value="Envoyer">
</div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value=""></div></form></body></html>
0
reltak Messages postés 262 Statut Membre 41
 
O_O en effet c'est pas trop mal mais du coup il te faut un serveur d'envoi de mail :)
0
Aurelsicoko Messages postés 160 Statut Membre 4
 
Bah je crois pas puisqu'il mon demandé sur quel adresse email je voulais recevoir les formulaires remplir.

Donc je pense pas.
0
Aurelsicoko Messages postés 160 Statut Membre 4 > Aurelsicoko Messages postés 160 Statut Membre
 
Car c'est ca que je veux à tout pris évité c'est de m'aventurer dans les trucs de serveurs je veux rester simple donc que du html et recevoir tout sur un adresse email fixe.
0
reltak Messages postés 262 Statut Membre 41 > Aurelsicoko Messages postés 160 Statut Membre
 
si tu veux rester simple c'est mal parti car envoyer un mail c'est déjà du PHP et plus du HTML...
0
reltak Messages postés 262 Statut Membre 41
 
Et bien si la machine où est mis le serveur Web possède un serveur SMTP il n'y aucun souci mais dans le cas contraire, ton mail aura beaucoup de mal à décoller...
la fonction mail(...) de PHP envoie un mail vers une adresse particulière.
0
Aurelsicoko Messages postés 160 Statut Membre 4
 
Regarde ce petit bout de codage:

// Addresse de réception du formulaire
$email_dest = "studiographisme@hotmail.fr";
$sujet = "Votre commande";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: Studio Graphisme<studiographisme>\n";
$entetes .="Return-Path: Studio Graphisme<studiographisme>\n";
$entetes .="Reply-To: Studio Graphisme<studiographisme>\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";



L'adresse de réception je l'ai c'est studiographisme@hotmail.fr
Si cela ne marche car si msn n'a pas de serveur qui peut prendre cela en charge dis moi un nom de messagerie ou ce code pourrais passer.
0
reltak Messages postés 262 Statut Membre 41
 
Non le problème n'est pas la RECEPTION du mail mais l'ENVOI !!!!!!
Il faut bien que PHP trouve l'interface pour ENVOYER le mail au serveur !!!!!!!!!!!!!!!
0
Aurelsicoko Messages postés 160 Statut Membre 4
 
Oui c'est vrai comment régler ce problème ????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
reltak Messages postés 262 Statut Membre 41
 
et bien il faut installer un logiciel qui fait office de serveur SMTP sur la machine où se trouve le serveur Web

Les bouts de code $entete sont uniquement les en-têtes http qui servent au routage des mails. c'est ça qui te permet de savoir par qui un mail t'a été envoyé.

pour les logiciels SMTP je crois qu'il y a hMail mais je ne sais plus comment il fonctionne...

Et une autre remarque: il faut que tu installes PHP sur ton serveur Web, car sinon tu n'avanceras pas beaucoup.

Tu utilises quel serveur ? Apache ? IIS ?
0