Warning: mail() [function.mail]: Permission denied: headers injection - PHP - Programmation
Marsh Posté le 30-12-2009 à 10:30:43
l'erreur se trouve à la ligne 95
$res = mail($this->sendto[$i], $this->msubject,$body, $this->headers);
Merci de m'aider
Marsh Posté le 30-12-2009 à 10:45:43
t'as lu le mail de ton hébergeur? il te dit ce qu'il faut faire. tu rajoute la ligne suivante juste avant la ligne 95:
Code : |
et tu remplaces $this->sendto[$i] par $mail dans la ligne 95.
Marsh Posté le 30-12-2009 à 11:53:29
Code : |
Cela ne résout pas mon problème
Toujours le même message d'erreur.
Marsh Posté le 30-12-2009 à 12:05:21
ReplyMarsh Posté le 30-12-2009 à 12:23:44
mouais enfin on lui a demandé de créer un nouveau topic...
Marsh Posté le 30-12-2009 à 12:38:30
pataluc a écrit : |
autant pour moi j'ai juste lu le reste, et tiré des conclusions trop rapides
Marsh Posté le 30-12-2009 à 10:12:32
Bjr,
Mon hebergeur à mis une sécurité et du coup, mon formulaire d'envoi de mail me renvoi cette erreur:
Warning: mail() [function.mail]: Permission denied: headers injection (empty line) in
Voila ce que mon hebergeur dit:
Quelques sites ont été victimes d'une attaque distribuée visant à envoyer un mailing en masse de spam via des sites client.
En effet, des spammeurs ont répertorié toutes les pages ayant un formulaire de contact envoyant un email. Plusieurs sites hébergé chez nous et dans le monde ont donc été exploité de la même façon.
Ils se sont servis d'une faille existante dans beaucoup de formulaires de contact qui ne vérifient pas la présence de retour de ligne dans certains champs, en particulier celui de l'e-mail de l'expéditeur à compléter dans les formulaires.
Vous pouvez éviter que cela se produise, soit en désactivant le script PHP de contact e-mail de votre site, soit en vous assurant qu'il n'y a pas de retour de ligne dans chacun des champs du formulaire de contact de votre site.
Voici comment éviter simplement que ceci soit exploitable en remplaçant les retours de ligne dans chacun des champs devant normalement contenir un email (ce champ est souvent nommé $email, $sender ou $from):
$EMAIL = str_replace("\n", "", str_replace("\r", "", $EMAIL));
Le spammer exploite les scripts ressemblant à ceci
$MESSAGE = $_POST[msg];
$RECIPIENT = "webmaster@votredomaine.com";
$SUBJECT = "Formulaire de contact";
$EMAIL = $_POST[email];
// Sans cette ligne votre script est exploitable !!!!
$EMAIL = str_replace("\n", "", str_replace("\r", "", $EMAIL));
mail($RECIPIENT, $SUBJECT, $MESSAGE, "From: $EMAIL" );
Merci de bien vouloir vérifier ceci dans vos scripts PHP.
mon script
Merci de m'aider
[cpp][/cpp]