webForumDet fria alternativet

Mail från formulär

PHPur PHP

11 svar · 648 visningar · startad av nordan

nordanMedlem sedan juni 2000949 inlägg
#1

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??

PeddaMedlem sedan juni 20006 032 inlägg
#2

double newline in headers, possible injection

Hur ser dina headers ut?
Har du dubbla newlines nånstans där?

nordanMedlem sedan juni 2000949 inlägg
#3

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 &auml;r skickat</h4>";
				}
		  ?>
PeddaMedlem sedan juni 20006 032 inlägg
#4

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.

nordanMedlem sedan juni 2000949 inlägg
#5

:birp Tackar Tackar!! Funkar!

nordanMedlem sedan juni 2000949 inlägg
#6

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 :)

NiklassonMedlem sedan nov. 2000857 inlägg
#7

varför har du <> efter $sender_email resp. $massanmail? De gör ingen nytta...

nordanMedlem sedan juni 2000949 inlägg
#8

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 :)

colioneMedlem sedan juni 20014 421 inlägg
#9

Man har taggarna för att kunna skriva både mail-adresser och namn..

Ano Nym <anonym@example.com>

NiklassonMedlem sedan nov. 2000857 inlägg
#10

Du ska alltså ta bort dom, om du nöjer dig med att skicka e-postadressen.

NiklassonMedlem sedan nov. 2000857 inlägg
#11

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..

nordanMedlem sedan juni 2000949 inlägg
#12

Det funka, Tack för hjälpen

250 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
123 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)