Avatar billede webstuff Nybegynder
04. januar 2006 - 23:10 Der er 13 kommentarer og
2 løsninger

Fejl i mail()

Jeg er ved at lave en kontakt form på min side..
Den virker fint nok, og jeg får mailen..
Men der hvor der normalt står hvem mailen er fra står der:
"added by portage for apache <apache@hotserv.dk>"

Min mail(); ser sådan her ud:
mail("min@mail.dk", "".$emne."", "".$msg."", "".$afsender."");

og så står afsender mailen øverst i mailen..
Nogen der kan hjælpe mig med at flytte afsender adressen fra øverst i brevet til den plads den normalt er på :-)
Avatar billede jaw Nybegynder
04. januar 2006 - 23:12 #1
prøv:
mail("min@mail.dk", "".$emne."", "".$msg."", "From:".$afsender."");
Avatar billede erikjacobsen Ekspert
04. januar 2006 - 23:12 #2
Du mener ikke:

  mail("min@mail.dk", $emne, $msg, "From: $afsender");

??
Avatar billede erikjacobsen Ekspert
04. januar 2006 - 23:16 #3
Og hvis det virker så har du lige åbnet for mail-spam til helt andre brugere fra de søde hackere rnudt i verden. De vil nemlig prøve at bruge din mail-formular og sætte mere end linie ind i feltet emne. Det kan man nok ikke gøre i en browser, men det bruger de heller ikke. Det de sætter ind er et linieskift efterfulgt af en Bcc: en@email.adresse, og da PHP blot sætter dit emne ind i HTTP-headeren kommer den Bcc også ind, og så kan de sandelig sende spammail til hele verden - indtil du bliver træt af det.

Man skal, og skal og skal, og jeg har ikke sagt det før, så lad man gentage det nu: SKAL checke input fra formularer. Der må kun være en linie i $emne, og i $afsender, og er der antydning af et linieskift, så skal man ikke sende en mail.
Avatar billede webstuff Nybegynder
04. januar 2006 - 23:19 #4
hvilken funktion tæller antal linjer ?
Avatar billede erikjacobsen Ekspert
04. januar 2006 - 23:20 #5
Led efter \n  - men få det lige til at virke først. Hackerne kommer nok først i morgen ;)
Avatar billede webstuff Nybegynder
04. januar 2006 - 23:23 #6
okay..
hehe.. ja det gør de sku nok først ;-)

Hvis jeg nu hæver pointene til det dobbelte.. så får i begge to point..
Jeg brugte Jaw's svar fordi han var hurtigst (og fordi han også er bornholmer ;-))
men du har forklaret mig så meget om det erik, så du skal også have nogen :-D

Så hvis i begge smider et svar :-)
Avatar billede erikjacobsen Ekspert
04. januar 2006 - 23:24 #7
Nåh, men jeg samler slet ikke på point, tak.
Avatar billede webstuff Nybegynder
04. januar 2006 - 23:25 #8
okay :-D
Så må mig og jaw dele :-)
Avatar billede erikjacobsen Ekspert
04. januar 2006 - 23:27 #9
Ja, sikke en bornholmermafia  *g*
(det ord findes ikke på google - men det gør det nu ...)
Avatar billede jaw Nybegynder
04. januar 2006 - 23:27 #10
Ohh, var det nu dig igen :) Jamn så tak herfra, men Erik's er så en smule mere syntax-mæssigt korrekt end min. Jeg rettede kun funktionaliteten, ikke syntaxen.
Avatar billede webstuff Nybegynder
04. januar 2006 - 23:42 #11
Erik: Du har lige tilføjet et helt nyt ord til den danske retstavningsordbog ;-)

Jaw: Ja det er mig..... Igen :-D
Avatar billede nikolajdu Nybegynder
05. januar 2006 - 00:40 #12
Super info Erik. Går ud fra det her skulle kune gøre det

if( eregi ("\n", $_POST["afsender")){
// fy du!
}

Tæller \r i øvrigt med i den her sammenhæng?
Avatar billede erikjacobsen Ekspert
05. januar 2006 - 08:58 #13
Jah, så for en god ordens skyld, for at være helt sikker ;)

  if( ereg ("[\r\n]", $_POST["afsender")){

Men hold op med at bruge ereg-funktionerne. De udfases på et tidspunkt i fremtiden fra standard PHP.
Avatar billede webstuff Nybegynder
05. januar 2006 - 12:32 #14
Er det mig, eller skal den ikke se sådan her ud:
if( ereg ("[\r\n]", $_POST["afsender"])){
??
Eller var det med vilje at der manglede ']' i $_POST["afsender" ??
Avatar billede erikjacobsen Ekspert
05. januar 2006 - 12:36 #15
Ja, der manglede en ]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester