Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 
  • Portail PHP
  •  » Autres
  •  » envoyer les reponses d'un formulaire à une adresse mail

#1 15-11-2007 16:24:24

muelsa
Membre
Date d'inscription: 15-11-2007
Messages: 2

envoyer les reponses d'un formulaire à une adresse mail

Bonjour,
Je suis en train de créer un site et je souhaiterai mettre en place un formulaire (juste adresse mail) et je souhaiterai que l'adresse mail me soit envoyer sur ma boite mail. J'ai donc du code en php, javascript et html. Le formulaire est visible mais lorsque j'appuie sur le bouton envoyé ou effacé, rien ne  se passe. Voici le code

Code:

<?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 = "elsa_louna@hotmail.fr";

if ($_POST['envoi']) {

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: elsa<elsa_louna@hotmail.fr>\n";


$headers .="Content-Type: text/html; charset=iso-8859-1 \n";

$subject = "inscription";

$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://elsalickel.fr/confirmation");
exit();

} // Fin du else
} // Closing if edit
?><html><head><title></title><script language="JavaScript">function verifSelection() {if (document.mail_form.zone_email.value == "") {
alert("Veuillez renseigner 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_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
}} // Fin de la fonction

</script></head><body><tr>
      <td width><font face="Verdana" size="2">Inscription</font></td>
      <td width><input name="zone_email" type="text"></td>
    </tr><tr>
      <td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="0">
        <input name="nbre_zones_texte" type="hidden" value="0">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_email" type="hidden" value="Inscription"></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></body></html>

Merci beaucoup de vos réponses car j'ai passé 4 heure juste pour essayé de créer ce tout petit formulaire.

Hors ligne

 

#2 15-11-2007 16:52:15

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 161
Site web

Re: envoyer les reponses d'un formulaire à une adresse mail

salut^^

excuse moi il se fait tard et je ne suis pas sur de tout bien voir hmm

en plus je ne suis pas une "crack" en javascript mais...

je voit que ta partie "formulaire" est en html de base, et que tu valide ou reset avec un input,
ne serait il pas plus pratique de mettre un "form" au depart?

Hors ligne

 

#3 15-11-2007 17:18:49

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: envoyer les reponses d'un formulaire à une adresse mail

Je plussoie. Manque le form.
http://giminik.developpez.com/xhtml/form.html

Hors ligne

 

#4 16-11-2007 02:55:21

muelsa
Membre
Date d'inscription: 15-11-2007
Messages: 2

Re: envoyer les reponses d'un formulaire à une adresse mail

Merci de vos réponses si rapides. En effet le bouton effacer marche à présent, mais le formulaire n'arrive toujours pas dans ma boite de reception. S'il vous plaît ne me laissez pas tomber....

Hors ligne

 

#5 16-11-2007 08:52:54

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 161
Site web

Re: envoyer les reponses d'un formulaire à une adresse mail

Salut^^

tiens un truc interessant pour toi:

"Bonjour,

Ce message concernant les mails des utilisateurs de Homail et Msn, peut ne pas leur arriver !

Suites à de nombreux tests nous avons constaté que des mails étaient mis en courrier indésirable voir carrément perdu. Les domaines concernés sont hotmail.com, hotmail.fr, msn.com. Après recherche, nous avons acquis la certitude que les serveurs de Hotmail
sont responsables de la perte quotidienne d'un nombre indéterminé de courriels. Les responsables de MSN France ont confirmé que ces "dysfonctionnements" étaient causés sciemment par leur politique anti-spam.

Qui est concerné ?

Toutes les personnes ayant une adresse email chez Hotmail, ou écrivant un courriel vers un utilisateur de Hotmail (forward à partir de votre compte vers une adresse hotmail ), sont concernés : leur courrier est automatiquement délivré dans le dossier "courrier indésirable" de leur compte Hotmail. Or le contenu de ce dossier est effacé rapidement (5 jours ), dans le dos des utilisateurs et sans les en avertir. Il existe bien des possibilités de contournement qui sont proposées aux grands fournisseurs d'accès moyennant finance, mais leur coût excède largement nos moyens.

Que faire ?

Vous pouvez aller consulter très régulièrement votre dossier "courrier indésirable" et ouvrir le mail désiré, puis mettre l'option appropriée soit "courrier autorisé". Vous devez faire la même démarche si le mail vient d'une liste de diffusion, en précisant bien que c'est une liste de diffusion.
Sinon, il vous faut baisser le niveau de filtrage de courrier indésirable : celui qui est activé n'est pas adapté à votre cas. Affichez les Options du service puis cliquez sur Filtre Courrier indésirable. Cochez dans la page qui s'affiche, l'option "Bas - le courrier indésirable évident est intercepté".

A noter que plusieurs organismes, tels que Ecole polytechnique conseille aux utilisateurs qui utilisent Hotmail et Msn, de changer de service de mail pour utiliser des services tels laposte.net, freesurf.fr ou encore free.fr. Vu la politique anti-spam actuelle de Microsoft, <mon lieu d'études> ne peut plus garantir le trafic d'email à destination de ce fournisseur.

Microsoft a annoncé que ses serveurs refuseraient tout courriel n'utilisant pas la technologie Sender ID qu'il a brevetée. Les prestataires de redirection de courrier et les prestataires de listes de diffusion en seront affectés : ils ne pourront pas se conformer à cette technologie car les brevets qui la protègent empêchent son implémentation dans les logiciels libres.

Cordialement,
<le service informatique> "

La fonction mail() serait pas trés bien vu par MSN ^^
En fait MSN comparerais l'adresse mail du header à l'IP de l'expediteur et si celles-ci ne sont pas concordantes....poubelle hmm

Il se peut aussi que ton hébérgeur est désactivé la fonction mail().

Dernière modification par Asherah (16-11-2007 09:35:46)

Hors ligne

 
  • Portail PHP
  •  » Autres
  •  » envoyer les reponses d'un formulaire à une adresse mail