double newline in headers, possible injection
Hur ser dina headers ut?
Har du dubbla newlines nånstans där?
11 svar · 648 visningar · startad av nordan
Hej!
Jag har haft ett mailformulär på min sida, nu är det inte så att så många mailar från den sidan men jag vet att den har funka förr.
Nu idag när jag testa den så fick jag detta felet, jag har för mig att dom ändra något på mitt webbhotell (space2u.com) för att förhindra spam.
Warning: mail() [function.mail]: mail() - double newline in headers, possible injection, mail dropped in /home/pXXXX/public_html/kontakt.php on line 15
Vad måste jag rätta till för att den skall funka igen??
double newline in headers, possible injection
Hur ser dina headers ut?
Har du dubbla newlines nånstans där?
Visst räcker denna kod?
<?
if($_POST['namn'] != "" && $_POST['epost']!= "" && $_POST['mess'] != "")
{
$sender_name = $_POST['namn'];
$sender_email = $_POST['epost'];
$message = $_POST['mess'];
$msg = "Skickat av:\t$sender_name\nEpost:\t$sender_email\nMeddelande:\n$message\n\n";
$recipient = "mail@nordan.nu";
$subject = "Mail från www.nordan.nu";
$mailheaders = "From: $sender_email<> \n";
$mailheaders .= "Reply-To: $sender_email\n\n";
mail($recipient, $subject, $msg, $mailheaders);
echo "<h4>Ditt meddelande är skickat</h4>";
}
?>
Du har dubbla \n\n på raden
$mailheaders .= "Reply-To: $sender_email\n\n";
testa att ta bort eller ändra till \r\n och se om det hjälper.
:birp Tackar Tackar!! Funkar!
Hallå, jag hoppas någon tittar på denna tråd fast jag vart nöjd med förra svaret. Jag har en till fråga.
När jag använder mig av denna kod så funkar inte dom 2 översta mailheaders när jag har en viss mail adress men använder jag min egna mailadresser så funkar det.
Kan det vara så att det finns något spamfilter som plockar bort mailadresserna från avsänderen?? Låter lite ologiskt att bara det skulle plockas bort och inte hela mailet eller?
Eller ni kanske hittar felet.
Det som händer är alltså att det inte finns någon avsändare från den som skickar från webben. Mailadressen som man uppger finns dock med i mailet eftersom jag vill ha den där.
$recipient = $motagare;
$subject = "Anmälan till mässan";
$mailheaders = "From: $sender_email<> \n";
$mailheaders .= "Reply-To: $sender_email\r\n";
mail($recipient, $subject, $msg, $mailheaders);
$mailheaders2 = "From: $massanmail<> \n";
$mailheaders2 .= "Reply-To: $massanmail\r\n";
mail($sender_email, $subject, $msg2, $mailheaders2);
header("Location: http://www.domain.se/tack.php");
ps $motagare är rättstavat enligt mig :)
varför har du <> efter $sender_email resp. $massanmail? De gör ingen nytta...
Jag tror att jag kopierade detta script för länge sen. Jag vet inte varför dom är där och jag vågar heller inte ta bort dom :)
Du ska alltså ta bort dom, om du nöjer dig med att skicka e-postadressen.
Såg en annan sak också. Du använder \n som radbrytning på From: men \r\n på Reply-To. Prova använd \r\n även på From: och ta bort <> så ska du se att det fungerar sen..
Det funka, Tack för hjälpen