Envoi formulaire en html

loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention   -  
loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai vraiment besoin d'aide et personne ne m'aide. J'ai besoin de créer un formulaire de contact avec mail de retour objet (qui pourrait être le sujet du mail) et le message. J'ai déjà vu beaucoup de tutoriaux mais je n'y comprends rien!!

A l'aide !!!!!

Et merci d'avance, à ceux qui répondront... si il y en a....

J'ai ça : mais ça ne donne rien


<?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['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 = "cl.jonval@laposte.net";
$sujet = "Contact site";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: Webmaster<webmaster@tele-surveillance.fr>\n";
$entetes .="Return-Path: Webmaster<webmaster@tele-surveillance.fr>\n";
$entetes .="Reply-To: Webmaster<webmaster@tele-surveillance.fr>\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\">Saisir l\'objet de votre message = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Saisir votre e-mail = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Saisir votre 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:merci.php");
exit();
} // Fin else
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?>
<html>

<head>
<title>Formulaire</title><script language="JavaScript">
function verifSelection() {


if (document.mail_form.zone_email1.value == "") {
alert("Votre e-mail n\'est pas valide !")
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
}

} // Fin de la fonction
function MM_initTimelines() { //v4.0
//MM_initTimelines() Copyright 1997 Macromedia, Inc. All rights reserved.
var ns = navigator.appName == "Netscape";
var ns4 = (ns && parseInt(navigator.appVersion) == 4);
var ns5 = (ns && parseInt(navigator.appVersion) > 4);
var macIE5 = (navigator.platform ? (navigator.platform == "MacPPC") : false) && (navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4);
document.MM_Time = new Array(1);
document.MM_Time[0] = new Array(0);
document.MM_Time["Timeline1"] = document.MM_Time[0];
document.MM_Time[0].MM_Name = "Timeline1";
document.MM_Time[0].fps = 15;
document.MM_Time[0].lastFrame = 0;
for (i=0; i<document.MM_Time.length; i++) {
document.MM_Time[i].ID = null;
document.MM_Time[i].curFrame = 0;
document.MM_Time[i].delay = 1000/document.MM_Time[i].fps;
}
}
</script>
</head><body><form name="mail_form" method="post" action="<?php $_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($erreur_champ1);
} else {
if ($erreur_email1) {
echo($erreur_email1);
} else {
if ($erreur_texte1) {
echo($erreur_texte1);
} 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">Saisir l'objet</font></div></td>
<td valign="middle" width="30">
<?php
if ($erreur_champ1) {
echo($icone);
}
?>
</td>
<td align="left"><input name="champ1" type="text" value="<?php ($_SESSION['champ1']);?>"></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Saisir votre e-mail</font></div></td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_email1) {
echo($icone);
}
?>
</td>
<td align="left"><input name="zone_email1" type="text" value="<?php ($_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">Saisir votre 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"><?php ($_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>

7 réponses

nabla
 
ben deja, sans me plonger dans ton code, tu utilises la fonction mail: elle est g2n2rqlement bloquée....
essaye de la remplacer par en echo, histoire de voir si le probleme viendrai pas de la ...

chez free, limité a 1000 ou 2000 mails par semaine je croi
en local, je sais pas comment ca marche, il doit surement faloire preciser le smtm de ton FAI quelque part.
0
loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention   1
 
comment je fais pour remplacer la fonction mail par un echo?
0
nabla
 
avant de faire

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


tu fait echo $email_dest."<br />".$sujet."<br />".$sortie."<br />".$entetes;


comme ca tu vois si le probleme vien de ta fonction mail ou pas.. si ca affiche rien, c est qu ton probleme est ailleur.

cette modif est temporraire bien sur...
0
loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention   1
 
j'ai fais ce que tu m'as dit et maintenant quand je clique sur envoyer j'ai ça :


cl.XXXX@laposte.net
Contact site
Saisir l\'objet de votre message = bonjour
Saisir votre e-mail = lol@laposte.net
Saisir votre message = kjlkjlkj

MIME-Version: 1.0 From: Webmaster Return-Path: Webmaster Reply-To: Webmaster Content-Type: text/html; charset=iso-8859-1 Envoi du formulaire impossible
0
nabla
 
donc c est bien la fonction mail qui merdouille....
verifie en faisant ca:

if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
echo "ca casse";
exit();
} else {

// Rediriger vers la page de remerciement
echo "ca passe"
exit();
} // Fin else


et dit moi si ca passe ou ca casse ;)

es ce que tu teste en local sur ton poste, ou es ce que tu test sur un serveur online ???
quel est ton FAI si tu est en local, ou quel est ton hebergeur si tu heberge sur le net ?
0
loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention   1
 
Lors de l'envoi

cl.XX@laposte.net
Contact site
Saisir l\'objet de votre message = bonjour
Saisir votre e-mail = lojlk@lo.net
Saisir votre message = jkhkjhjk

MIME-Version: 1.0 From: Webmaster Return-Path: Webmaster Reply-To: Webmaster Content-Type: text/html; charset=iso-8859-1 ca casse

Je teste en local mon FAI orange et j'ai déjà configurer mon php.ini :

[mail function]
; For Win32 only.
SMTP = smtp.orange.fr
smtp_port = 25
0
nabla
 
distribution gratuite de liens:

http://www.toutestfacile.com/php/cours/mail_1.php5

http://www.commentcamarche.net/forum/affich 205237 php smtp


dans le premier il est dit de faire:

Pour une utilisation sous windows il convient de modifier le fichier php.ini. Celui-ci contient 2 champs dans la rubrique [mail functions]. L'un SMTP doit indiquer le compte smtp de votre fournisseur d'accès (qui est généralement de la forme mail.<domaine> ou smtp.<domaine>). L'autre sendmail_from doit indiquer votre adresse email.
Chez certains hébergeurs la fonction mail est remplacée par une fonction email (il s'agit d'une variante de mail destinée à limiter les possibles abus évoqués en introduction). Je vous invite alors à consulter votre hébergeur pour en connaître la syntaxe
Il est possible que votre fournisseur d'accès refuse l'envoi de votre email s'il n'arrive pas à vous identifier (et à vous autoriser l'envoi d'emails).
0

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

Posez votre question
nabla
 
as tu redémarré apache apres avoir fait la modif ?

il est possible que orange veuille ton login et MDP pour acceder au SMTP. ils peuvent faire ca pour eviter le spam
0
nabla
 
quoi que, il ne semblerai pas que ce soit ca apres quelques recherches
0
loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention   1
 
oui j'ai redémarré
et ça donne ça

cl.jonval@laposte.net
Contact site
Saisir l\'objet de votre message = sfsfs
Saisir votre e-mail = lol@lo.net
Saisir votre message = jhkjhjk

MIME-Version: 1.0 From: Webmaster Return-Path: Webmaster Reply-To: Webmaster Content-Type: text/html; charset=iso-8859-1 ca casse
0
nabla > loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention  
 
t as pas essayé de faire comme je t ai dit en 5 ?

ha oui aussi... regarde peut etre dans les courriers indesirables de ta boite mail!! ton anti spam vire peut etre les messages . . . ce ne serait qu a moitié étonnant !!!
0
loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention   1 > nabla
 
Oui j'ai fais comme tu m'as dit et rien de rien même en indésirables
0
nabla
 
et quand tu fais ca, ca ne te dit ni "ca passe", ni "ca casse?"

if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
echo "ca casse";
exit();
} else {

// Rediriger vers la page de remerciement
echo "ca passe"
exit();
} // Fin else

sinon tu as toujours la solution bourin d'isntaller ethereal (wireshark), pour voir si ton ordi essaye de contacter ce serveur smtp ...

je pense pas que je pourrai t aider plus.. dsl
0
loute08 Messages postés 227 Date d'inscription   Statut Membre Dernière intervention   1
 
Ben si je l'ai laissé ce bout de code là et ça me le dit bien regarde:


IME-Version: 1.0 From: Webmaster Return-Path: Webmaster Reply-To: Webmaster Content-Type: text/html; charset=iso-8859-1 ca casse<---- là
0