Salut à tous,
j'ai donc cette erreur lorsque l'on clique sur "envoyer" sur le formulaire
Warning: mail() [function.mail]: Permission denied: headers injection (empty line) in /home/www/.../recupmail.php on line 43
la ligne 43 :
et cela viendrai de l'hébergeur qui a mis une sécurité.
Je dois faire çà mais je comprend rien à la manip :
Lien de l'explication du problème sur le site de l'hébergeur :
Lien de l'explication du problème sur le site de l'hébergeur
Résolution de l'hébergeur à laquelle je ne comprend rien
Mon script :
merci de m'aider
a+
Modifié par mough-lee (28 May 2009 - 14:49)
j'ai donc cette erreur lorsque l'on clique sur "envoyer" sur le formulaire
Warning: mail() [function.mail]: Permission denied: headers injection (empty line) in /home/www/.../recupmail.php on line 43
la ligne 43 :
a écrit :
mail($to, $mail, $msg, $headers);
et cela viendrai de l'hébergeur qui a mis une sécurité.
Je dois faire çà mais je comprend rien à la manip :
a écrit :
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[m s g];
$RECIPIENT = "webmaster@votredomaine.com";
$SUBJECT = "Formulaire de contact";
$EMAIL = $_POST[e m a i l];
// 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.
Lien de l'explication du problème sur le site de l'hébergeur :
Lien de l'explication du problème sur le site de l'hébergeur
Résolution de l'hébergeur à laquelle je ne comprend rien
Mon script :
<?php
/* Récupération des valeurs des champs du formulaire */
if (get_magic_quotes_gpc())
{
$Nom = stripslashes($_POST['Nom']);
$société = stripslashes($_POST['société']);
$mail = stripslashes($_POST['mail']);
$Prénom = stripslashes($_POST['Prénom']);
$message = stripslashes($_POST['message']);
}
else
{
$Nom = $_POST['Nom'];
$société = $_POST['société'];
$email = $_POST['mail'];
$Prénom = $_POST['Prénom'];
$message = $_POST['message'];
}
/* Destinataire (mon adresse e-mail) */
$to = 'xxxxx@xxxxxx;
/* Construction du message */
$msg = 'Bonjour,'."\r\n\r\n";
$msg .= 'Ce mail a été envoyé depuis la page Devis pour la Machine à Bois par M. '.$Nom.' '.$Prénom.' de la société '.$société."\r\n\r\n";
$msg .= 'son adresse e-mail est :'.$mail."\r\n";
$msg .= 'Voici le message qui vous est adressé :'."\r\n";
$msg .= '***************************'."\r\n";
$msg .= $message."\r\n";
$msg .= '***************************'."\r\n";
$msg .= 'Et les caractéristiques souhaité pour leur machine à bois personnalisé :'."\r\n";
/* En-têtes de l'e-mail */
$headers = 'From: '.$nom.' <'.$mail.'>'."\r\n\r\n";
/* Envoi de l'e-mail */
mail($to, $mail, $msg, $headers);
?>
merci de m'aider
a+
Modifié par mough-lee (28 May 2009 - 14:49)