27. marts 2008 - 14:45
Der er
28 kommentarer
Problemer med $_post
Jeg har lavet en side, hvor folk skal kunne tilmelde sig en "børneklub". Jeg har lavet en alm. form, som har add_medlem.php som action. i add_medlem.php har jeg følgende som tilføjer i databasen: $sql="INSERT INTO tabelnavn (navn, adresse, postnummer, city, telefonnummer, alder, foedselsdag, email) VALUES ('$_POST[navn]','$_POST[adresse]','$_POST[postnummer]','$_POST[city]','$_POST[telefonnummer]','$_POST[alder]','$_POST[foedselsdag]','$_POST[email]')"; Dette virker som det skal. Dertil har jeg lavet et simpelt mail function. Som modtager har jeg lavet dette: $modtager = $_POST['mail']; og til sidst selve mail: mail($modtager, $to, $subject, $message, $headers); Jeg har også forsøgt: $modtager = "Nyt medlem <$_POST['mail']>"; $modtager = echo $_POST['mail']; Uden held. Hvor går det galt ?
Annonceindlæg fra Hitachi
”Forskellighed gør os stærkere!”
Diversitet er ikke kun buzzwords og politisk korrekthed, men et spørgsmål om at alle føler sig godt tilpas og kan yde deres bedste.
31. januar 2025
27. marts 2008 - 15:21
#1
Du skal vel bare $modtager = $_POST['mail']; mail($modtager, $subject, $message, $headers);
27. marts 2008 - 15:21
#2
27. marts 2008 - 15:28
#3
Det er jo netop det jeg har gjort - uden resultat.
27. marts 2008 - 15:29
#4
Jeg har fjernet en parameter, der ikke skal være der.
27. marts 2008 - 15:38
#5
Altså $to virker godt nok, den mail får jeg - men $modtager (som bliver indtastet i formen) bliver ikke modtaget
27. marts 2008 - 15:39
#6
$modtager = $_POST['mail']; $modtager = $_POST['mail']; er nu ens for mig ?
27. marts 2008 - 16:13
#7
Men den måde du benytter mail() på er ikke rigtig, du har ALT for mange paramtre med. erikjacobsen viser dig hvordan brugen af mail() skal se ud. Hvis du er i tvivl, så se det link som er vist.
27. marts 2008 - 16:45
#8
Jeg kan ikke se hvorfor jeg har for mange parametere ? jeg har bare lavet dem som arrays ? Her er min samlede mail kode: <?php $modtager = $_POST['mail']; $to = "Nyt medlem <min@email.dk>"; $from = "From: navn <min@email.dk>"; $subject = "Tilmelding til klubben"; $message = "Test"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "$from\r\n"; mail($modtager, $to, $from, $subject, $message, $headers); ?>
27. marts 2008 - 16:46
#9
Den virker jo fint, bortset fra $modtager = $_POST['mail'];
27. marts 2008 - 16:55
#10
Det er nu meget simpelt, mail() tager max 4 parametre, og du giver 6 parametre. mail($modtager(1), $to(2), $from(3), $subject(4), $message(5), $headers(6));
27. marts 2008 - 16:56
#11
Og trax, du synes sikker også at disse to er ens ;) mail($modtager, $to, $from, $subject, $message, $headers); mail($modtager, $subject, $message, $headers);
27. marts 2008 - 17:44
#12
NU har jeg kortet det ned til dette: <?php $modtager = $_POST['mail']; $modtager = "Nyt medlem <min@email.dk>"; $from = "From: navn <min@email.dk>"; $subject = "Tilmelding til klubben"; $message = "Test"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "$from\r\n"; mail($modtager, $subject, $message, $headers); ?> Jeg modtager stadigt kun på $modtager = "Nyt medlem <min@email.dk>"; og ikke: $modtager = $_POST['mail'];
27. marts 2008 - 18:08
#13
Nej og hvorfor tror du så du ikke gør det ?? $modtager = $_POST['mail']; //Her tildeler du $modtager en værdi. $modtager = "Nyt medlem <min@email.dk>"; //Her tildeler du $modtager en anden værdi. Du må selv gætte hvilken værdi $modtager har når du bruger den i mail().
27. marts 2008 - 18:09
#14
Og lidt bedre formuleret: $modtager = "Nyt medlem <min@email.dk>"; //Her tildeler du $modtager en ny værdi.
27. marts 2008 - 20:34
#15
hvis man laver flere $headers (som også er i tilfældet) plejer det da at virke. Hvordan kan de løses ellers?
27. marts 2008 - 20:41
#16
Du laver ikke flere $headers, du lægger en værdi til $headers. Hvis du vil have flere modtager af dine emails, så kan du gøre som følgende: $modtager = $_POST['mail']; // Her tildeler du $modtager en streng. $modtager .= "; Nyt medlem <min@email.dk>"; //Her lægger du yderligere en streng til $modtager
27. marts 2008 - 22:23
#17
ok, et punktum foran = gør det hele ?
27. marts 2008 - 23:35
#18
Ja, så lægger du strengværdien til din variabel. Men når det handler om e-mails, så skal der et ; mellem hver adresse.
27. marts 2008 - 23:44
#19
Og lidt bedre forklaring: $variabel = "Hej"; Hvis vi vil lægge noget til vores streng i $variabel $variabel .= " med dig"; er det samme som: $variabel = $variabel . " med dig"; Og begge vil give med en echo af $variabel: "Hej med dig" Håber det gav lidt mening :-)
28. marts 2008 - 18:42
#20
Det gjorde det. Jeg har nu lavet $modtager = $_post['mail']; $modtager .= "; test <min@email.dk>"; og mail($modtager, ......) Heg modtager stadigt kun $modtager .= "; test <min@email.dk>";
28. marts 2008 - 18:57
#21
Du skal ikke skrive andet end en email-adresse i det første felt.
28. marts 2008 - 19:52
#22
Den skal jo hentes fra formen - det er brugerens email jo.
29. marts 2008 - 12:02
#23
aaahh kan det måske skyldes at du skrever $_post og ikke $_POST. Mener vist nok at der er forskel på variabler med små og store bogstaver, således at $_post ikke er det samme som $_POST. Når det drejer sig om server variabler, så husk altid at skrive dem med stort. $modtager = $_POST['mail']; $modtager .= "; test <min@email.dk>";
29. marts 2008 - 17:10
#24
Det er skrevet med stort i koden, jeg skrev det med lille da jeg skrev det her. Her er hele koden: <?php $modtager = $_POST['mail']; $modtager .= "; Nyt medlem <min@email.dk>"; $subject = "Tilmelding til klubben"; $from = "From: AFSENDER <min@email.dk>"; $message = "Test"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "$from\r\n"; mail($modtager, $subject, $message, $headers); ?>
30. marts 2008 - 12:26
#25
Hvis det er sådan at du IKKE laver en copy/plaste af din kode til her, hvordan kan vi så være sikker på at den kode du viser også er den kode du tester ?? Du burde i bare den ene email du modtager også kunne se den anden email-adresse. Hvis du ikke kan det, så er der fejl i din $_POST. Du kan evt lave et udprint af din $_POST med: print_r($_POST); Er du helt sikker på at $_POST['mail'] findes og indeholder noget ?? Lav evt et echo $modtager så du kan se om begge modtagere er på.
30. marts 2008 - 12:29
#26
Kan egentlig også godt være der lige er noget andet som skal ændres. Ret $modtager .= "; Nyt medlem <min@email.dk>"; til: $modtager .= ", Nyt medlem <min@email.dk>";
30. marts 2008 - 15:01
#27
Jeg har fået det til at virke nu. mit udtræk fra formen hed "email" istedet for "mail". så $_POST['mail'] skulle ændres til $_POST['email'] Det beklager jeg. en eller anden smid et svar og får nogle point. Grunden til at jeg ikke Copy/pastede koden, var at jeg ikke sad ved den computer hvor jeg kodede på.
31. marts 2008 - 12:42
#28
Jeg ligger da gerne et svar :-)
Vi tilbyder markedets bedste kurser inden for webudvikling