webForumDet fria alternativet

Mail från formulär

PHP

11 svar · 648 visningar · startad av nordan

Medlem sedan juni 2000949 inlägg
Frågan#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??

Medlem sedan juni 20006 031 inlägg
#2

double newline in headers, possible injection

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

Medlem 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>";
				}
		  ?>
Medlem sedan juni 20006 031 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.

Medlem sedan juni 2000949 inlägg
#5

:birp Tackar Tackar!! Funkar!

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

Medlem sedan nov. 2000857 inlägg
#7

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

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

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

Medlem sedan nov. 2000857 inlägg
#10

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

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

Medlem sedan juni 2000949 inlägg
#12

Det funka, Tack för hjälpen

276 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)