> Tous les forums > Forum des Webmasters
 Fonction mail()
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
chester80
  Posté le 11/08/2006 @ 17:01 
Aller en bas de la page 
Petit astucien
Bonjour à tous, Bojour à tous, Je désire faire sur mon site une page contact.php Voici ce que j'ai codé: Contact.php:
<?php //----Etape1----- //Si un message est envoyé, on l'enregistre //----------------- if (!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['message']) AND !empty($_POST['mail']) AND (trim($nom) != '') AND (trim($prenom) != '') AND (trim($mail) != '') AND (trim($message) != '')) { $nom=htmlentities($_POST['nom'], ENT_QUOTES);//On utilise htlmentities par mesure desécurité.UO $prenom=htmlentities($_POST['prenom'], ENT_QUOTES); $mail=htmlentities($_POST['mail'], ENT_QUOTES); $message=htmlentities($_POST['message'], ENT_QUOTES);//De même pour le message $message=nl2br($message);//Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br/> //On peut enfin enregistrer mysql_query("INSERT INTO contact VALUES('', '" . $nom . "', '".$prenom."', '" . $message . "', '". $mail ."')"); include("contact/contactrep.php"); } Else { include("contact/contactnon.php"); } //----Etape 2----- //Envoyer vers mail //----------------- $to='alonzo80@hotmail.com' mail($to,$_POST['sujet'], $_POST['message']); ?>
Avec ceci normalement je dois recevoir des mails lorsque quelqu'un a poster un message. Avec l'adresse alonzo80@hotmail.com sa fonctione trés bien Avec l'adresse geoffrey.carpentier@wanadoo.fr sa ne fonctionne pas du tous Avec l'adresse scmoreuil@free.fr sa ne fonctionne pas mais je recois ce mail plus tard dans la journée avec une pièce jointe et dedans ya le mail que je devrai recevoir:
Citation : De:Mail Delivery System Sujet:Undelivered Mail Returned to Sender This is the Postfix program at host perso0.free.fr. I'm sorry to have to inform you that your message could not be be delivered to one or more recipients. It's attached below. For further assistance, please send mail to <postmaster> If you do so, please include this problem report. You can delete your own text from the attached returned message. The Postfix program <scmoreuil@free.fr>: delivery temporarily suspended: connect to mx2.free.fr[212.27.42.43]: Connection refused
Pourquoi sa fonctionne sur certaine adrese et pas sur d'autre?? merci d'avance Edité le 11/08/2006
Publicité
koala01
 Posté le 13/08/2006 à 23:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, DÚjÓ, meme si ce n'est qu'un dÚtail (mais qui t'Úvitera sans doute pas mal de dÚconvenue), tu as pris la peine de sÚcuriser le rÚsultat de ton formulaire pour l'insÚrer dans une base de donnÚes, c'est dÚjÓ pas mal, mais tu "prend le risque" de t'envoyer le formulaire sans aucune sÚcurisationà Pourquoi diable, ne pas profiter de ce que tu as quand meme une "certaine" sÚcurisation sous la forme des variables $nom, $prenom, $mail et $message, ne pas utiliser ces variables lÓ lors de l'envoi de l'E-mail [question] Au passage: la concatÚnation de chaines prend beaucoup plus de ressources que la simple Úvalutation de valeurs au sein d'une chaineà Et, comble de bonheur, les guillemets doubles (double quotes ") permettent l'Úvaluation de variablesà Il serait intÚressant de modifier ton
mysql_query("INSERT INTO contact VALUES('', '" . $nom . "', '".$prenom."', '" . $message . "', '". $mail ."')");
en
mysql_query("INSERT INTO contact VALUES('', '$nom ', '$prenom', '$message', '$mail')");
voire, mÛme (je chicane, lÓ hein [clindoeil] [rougir]) en
$sql="INSERT INTO contact VALUES('', '$nom', '$prenom', '$message', '$mail')"; mysql_query($sql);
ou, fin du fin;, en
$sql=sprintf("INSERT INTO contact VALUES('', '%s', '%s', '%s', '%s')",$nom,$prenom,$message,$mail); mysql_query($sql);
Au passage (bis), prend tu la prÚcaution de vÚrifier que l'adresse introduite soit, au minimum au format normal d'une adresse Email [question] (une arobase @ qui ne soit ni en premiÞre position ni en derniÞre position, et un point . APRES l'arobase, mais ni tout de suite aprÞs, ni en derniÞre position)

Modifié par koala01 le 13/08/2006 23:30
chester80
 Posté le 13/08/2006 à 23:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
d'accord merci. mais comment je dois faire pour sÚcurisÚ l'envoide mail?? merci d'avance
koala01
 Posté le 14/08/2006 à 00:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Il s'agirait, dans un premier temps, de sÚcuriser le contenu de $_POST[sujet] exactement de la meme manÞre que ce qui est fait pour le contenu de $_POST[message] (dans une variable $sujet, par exemple [clindoeil]) Une fois cette sÚcurisation effectuÚe, au lieu d'utiliser le contenu des champs de formulaires sous la forme (actuelle) de
mail($to,$_POST['sujet'], $_POST['message']);
utilise les variables qui contiennent ces valeurs "sÚcurisÚes" sous la forme de
mail($to,$sujet,$message)
Il semblerait en outre judicieux de rajouter un champs "sujet" dans ta table et d'insÚrer la variable sÚcurisÚe sujet en meme temps que le reste de l'enregistrement Enfin, selon moi, du moins, l'envoi de l'E-mail et l'insertion dans ta table ne doivent tous les deux avoir lieu que si le formulaire a ÚtÚ correctement rempli… La fonction mail serait donc bien plus Ó sa place juste aprÞs l'inclusion de contact/contactrep.php, dans la partie "if" de ton test [clindoeil] Voici donc ton code avec les modifications telles que je te le conseillerais…
<?php //----Etape1----- //Si un message est envoyÚ, on l'enregistre et on envoie l'E-mail //----------------- if (!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['message']) AND !empty($_POST['mail']) AND (trim($nom) != '') AND (trim($prenom) != '') AND (trim($mail) != '') AND (trim($message) != '')) { $mail=$_POST['mail'], ENT_QUOTES; $nom=htmlentities($_POST['nom'], ENT_QUOTES);//On utilise htlmentities par mesure desÚcuritÚ.UO $prenom=htmlentities($_POST['prenom'], ENT_QUOTES); $message=htmlentities($_POST['message'], ENT_QUOTES);//De mÛme pour le message $sujet=htmlentities($_POST['sujet'], ENT_QUOTES);//et pour le sujet $message=nl2br($message);//Pour le message, comme on utilise un textarea, il faut remplacer les EntrÚes par des <br/> //on ne peut enregistrer que si l'adresse E-mail est au bon format //les expression rÚguliÞres viennent Ó notre secours sur ce coup lÓ if(!ereg ("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $mail)) { //On peut enfin enregistrer $sql=sprintf("INSERT INTO contact SET(`nom`,`prenom`,`sujet`,`message`,`mail`) VALUES('%s', '%s', '%s', '%s', '%s')",$nom,$prenom,$sujet,$message,$mail); mysql_query($sql); include("contact/contactrep.php"); //on envoie l'email $to='alonzo80@hotmail.com' mail($to,$sujet, $message); } } else { include("contact/contactnon.php"); }
(en ayant rajoutÚ un champs "sujet"(varchar 255) dans la table) Cela ne rÚsoudra peut etre pas le problÞme, mais, au moins, tu n'enverra plus d'E-mail si tout n'est pas correctement rempli, et ton code sera rÚellement sÚcurisÚ (ou du moins beaucoup plus qu'actuellement), et plus "seulement Ó moitiÚ"[clindoeil]
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Kit évolution PC : AMD Ryzen 7 5800X + carte mère MSI MPG B550 Gaming Plus à 309,90 €
309,90 € 390 € -21% @RueDuCommerce

RueDuCommerce fait une promotion sur le kit évolution PC comprenant le processeur AMD Ryzen 7 5800X et une carte mère MSI MPG B550 Gaming Plus qui passe à 309,90 € au lieu de 390 €.


Voir le bon plan
Mini PC GMK M2 (Core i7-11390H, 16 Go RAM, SSD 1 To, WiFi 6, BT 5.2, Windows 11) à 326,04 €
326,04 € 390 € -16% @Geekbuying

Geekbuying fait une promotion sur le très bon mini PC GMK M2 qui passe à 326,04 € avec le code promo 7VZJLW4Y. On le trouve habituellement autour de 390 €. Ce mini PC intègre un processeur Intel Core i7-11390H (4 coeurs), 16 Go de RAM DDR4 (extensible jusqu'à 64 Go) et un SSD NVMe de 1 To au format M.2 (un second emplacement libre est également disponible). Il possède un chip graphique Iris Xe qui fera tourner tous vos petits jeux. Il intègre le WiFi 6, le bluetooth 5.2, un port Ethernet Gigabit, 3 ports USB 3.2, 1 port USB 2.0, un port USB-C et deux connecteurs HDMI. Le tout tourne sous Windows 11 Pro.

Une excellente affaire pour un PC très performant, silencieux et qui ne prendra pas de place ! 


Voir le bon plan
Kit de 32 Go (2x16 Go) de mémoire DDR4 Corsair Vengeance RGB RS 3200 MHz à 84,99 €
84,99 € 107 € -21% @Amazon

Amazon fait une promotion sur le kit de 32 Go (2x16 Go) de mémoire DDR4 Corsair Vengeance RGB RS 3200 MHz CL16 à 84,99 € alors qu'on le trouve ailleurs à partir de 107 €. Vous pourrez personnaliser la palette de couleurs directement depuis le logiciel Corsair iCU.


Voir le bon plan
Circuit de course électrique Carrera GO Speed Grip (2 formule 1, 2 manettes) à 41 €
41,00 € 76,57 € -46% @Amazon

Amazon fait une promotion sur le circuit de course électrique Carrera GO Speed Gripqui passe à 41 € au lieu de 76,57 €. Fourni avec 2 manettes et 2 voitures Formule 1.


Voir le bon plan
Etabli de travail pliant Bosch PWB 600 (max 200 kg) à 109,99 €
109,99 € 150 € -27% @Amazon

Amazon fait une promotion sur l'établi de travail pliant Bosch PWB 600 (max 200 kg) à 109,99 € au lieu de 150 €. Cet établi est idéal pour fixer en toute sécurité des pièces avant de les travailler. Il est doté d’un plan de travail robuste et imperméable en bambou. Adapté à de nombreuses applications, il dispose également d’un compartiment de rangement pratique.


Voir le bon plan
Imprimante 3D Creality Ender 3 v3 SE (nivellement auto, 220x220x250mm) à 189 €
189 € 250 € -24% @Geekbuying

Geekbuying fait une belle promotion sur la toute dernière imprimante 3D Creality Ender 3 v3 SE qui passe à 189 € avec le code NNNFRV3SE. On la trouve ailleurs autour de 250 €. L'imprimante est expédiée depuis un stock Europe (en Pologne). Elle sera donc rapide et vous êtes sûr de ne pas avoir de douane. 

La Creality Ender 3 v3 SE est l'une des machines les plus populaires actuellement sur le marché. Et pour cause. Elle dispose d'un volume d’impression de 220 x 220 x 250 mm, est équipée d'un plateau chauffant inspiré du BuildTak, d'un nouvel écran LCD 4.3 pouces et offre des fonctionnalités pratiques comme le nivellement automatique, la reprise de l'impression après une coupure de courant ou le conduit pour le filament étroit. L'imprimante 3D est facile à assembler. 

Si vous cherchez à vous lancer dans l'impression 3D, c'est l'imprimante qu'il vous faut !


Voir le bon plan

Sujets relatifs
fonction mail() et wamp
hebergeur fonction mail
Fonction Mail PHP - Mails non transmis
Fonction Mailto limité a un certain nombre de mail
fonction mail avec piece jointe
fonction PHP mail()
une petite fonction de mail
la fonction "répondre" d'un mail ne fonctionne pas
itineweb et fonction mail()
fonction mail PHP chez free ? [résolu]
Plus de sujets relatifs à Fonction mail()
 > Tous les forums > Forum Forum des Webmasters