SCREENMAIL-SOLUTION DE CONTACT POUR WEBMASTERS

Signaler
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
cs_gomoz
Messages postés
135
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
23 décembre 2009
-
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
135
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
23 décembre 2009

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

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

Merci pour la source Bnrj.
neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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.