SCREENMAIL-SOLUTION DE CONTACT POUR WEBMASTERS

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 25 janv. 2010 à 02:40
cs_gomoz Messages postés 134 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 23 décembre 2009 - 1 févr. 2010 à 12:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51179-screenmail-solution-de-contact-pour-webmasters

cs_gomoz Messages postés 134 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 23 décembre 2009
1 févr. 2010 à 12:51
Franchement, ca n'a rien à faire ici.
Se référer plutôt aux exemples disponibles sur
- http://www.php.net/manual/fr/function.mail.php
- http://pear.php.net/manual/fr/package.mail.mail.php (plus difficile)
Et pour la partie formulaire d'envoi :
- http://www.commentcamarche.net/contents/html/htmlform.php3
olafgrossebaffe Messages postés 7 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 19 mai 2012
1 févr. 2010 à 10:23
houlala...

effectivement un html comme ça, j'oserai même pas l'executer... sans l'avoir allegé des 90% inutile ajouter par word. ça en est devenu illisible... mais bon, tout le monde ne sait pas utiliser le notepad ;).

en fait, concernant ton code php, juste trois ligne d'interessant :

la 6 et la 10 : même si ça marche, tu ne semble pas metriser l'utilisation complete les simple et doubles guillemet avec la concatenation des variables:

écriture hyper simpliste mais pouvant devenir dangereuse:
ligne6 : $texte="$_POST['pseudo'] vient de vous envoyer un message depuis votre site : $_POST['texte'] Vous pouvez le contactez, son mail est : $_POST['exp']";
ligne10: $header = "From: "$exp"<$_POST['exp']>\r\n";

ou

ecriture pointu mais sécurisé avec métrise des guillemet simple et double
ligne6 : $texte=$_POST['pseudo'].' vient de vous envoyer un message depuis votre site : '.$_POST['texte'].' Vous pouvez le contactez, son mail est : '.$_POST['exp'];
ligne10: $header = 'From: "' .$exp .'"<' .$_POST['exp']. '>'. "\r\n";

concernant la ligne 13, elle est pour moi la belle nouveauté de ce code :
ligne13 : header ("Refresh: 4;URL=../index.php");

effectivement "neigedhiver" les header ne doivent pas être envoyé une fois qu'on a déja sorti quelque chose... mais ça n'est valable que pour la page actuel ^^, pas pour la page suivante :) qui, ici, arrivera dans 4 secondes ^^.

sinon, concernant le reste du code en lui meme, absolument rien d'interessant, pas le moindre algo, pas d'explication de quoi que ce soit, et un bel embrouyamini de code word servant a rien.

faut être honete, "bnrj", tu n'explique même pas la fonction mail(); du php alors que tu l'utilise "tel quel"

bon, je sais que je suis dur avec toi, mais si j'ai le courrage de l'extraire de mes libs, je vous balancerai mon code pour l'envoi de mail html avec image intégré et pieces jointe (mignon tout plein mais au moins une cinquantaine de petites fonction pas-là-pour-faire-joli)
alfrai Messages postés 69 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 23 juillet 2013
25 janv. 2010 à 13:42
Merci pour la source Bnrj.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
25 janv. 2010 à 02:40
Salut,

J'ai pas vraiment regardé en détails, comme à mon habitude. Mais y'a un truc qui me choque : l'envoie d'un header APRES l'affichage d'un texte... C'est tout simplement "interdit", dans le sens où il n'est pas possible d'envoyer des entêtes après avoir envoyé du texte (puisque les entêtes HTTP sont réputés être tous finis d'envoyer quand du texte est envoyé).

Bref, pour voir le message d'erreur, il faut l'afficher avec error_reporting(E_ALL)

Sinon, le code HTML n'est conforme à rien du tout, c'est à dire aucun standard (même pas HTML 4.0 contrairement au namespace indiqué dans la balise html (ce qui ne m'étonne pas du tout du fait que c'est généré par MS Word...).

La variable $redirect ne sert à rien, puisque tu tentes de rediriger vers index.php quoi qu'il en soit. L'adresse email n'est même pas vérifiée pour s'assurer qu'elle est au moins valide (à défaut d'exister).
On peut regretter que l'émetteur ne reçoive pas une copie de son message par mail.

Euh voilà, rapidement.