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