Avatar billede artico Novice
02. april 2005 - 14:39 Der er 36 kommentarer og
1 løsning

Variabel i HTML mail ?

Hej jeg vil gerne have en variabel med i en HTML mail og forsøger med:

$htmltext  = '<b>Hej </b> med ".$_POST['navn']." <i>dig</i>';
Men det virker ikke ej heller $navn ?? Hvordan gør man ?
Avatar billede jaw Nybegynder
02. april 2005 - 14:41 #1
$htmltext  = "<b>Hej </b> med ".$_POST['navn']." <i>dig</i>";

Prøv det, ellers må jeg have mere info. Mere kode, eller en beskrivelse af hvad der sker/ikke sker. Fejlmeddelelser?
Avatar billede bromer Nybegynder
02. april 2005 - 14:43 #2
Hvordan ser den form du benytter før du sender mailen?
Avatar billede artico Novice
02. april 2005 - 14:44 #3
Fejlmeddelelse: Parse error: parse error, unexpected T_STRING

Og det er i den line..
Avatar billede artico Novice
02. april 2005 - 14:45 #4
<form id="" action="<?= $_SERVER['REQUEST_URI']
?>" method="post" name="">

og felterne:
<td>navn</td>
<td colspan="4"><input type="text" name="navn" size="24"></td>
Avatar billede bromer Nybegynder
02. april 2005 - 14:46 #5
det skal være:

<form id="" action="<?=$_SERVER['REQUEST_URI'];?>" method="post" name="">
Avatar billede artico Novice
02. april 2005 - 14:48 #6
OK, men jeg får stadig parse error hvis jeg vil have en variabel fra formen ind i HTML mailen.

PS: Uden variablen fungere det fint, der bliver sendt mail og det køre, bare ikke med den s.... variabel
Avatar billede bromer Nybegynder
02. april 2005 - 14:50 #7
okay.. hvordan ser linierne ud omkring den linie der fejler. Det er ofte linierne før der fejler, hvor man først få fejlen på linen efter.
Avatar billede jaw Nybegynder
02. april 2005 - 14:50 #8
Har du prøvet med mit 1. forsøg? Testede det lige, og før min ændring får jeg også parse error, men ikke efter...
Avatar billede artico Novice
02. april 2005 - 14:53 #9
Ja... 1000 TAK!! det virker  » jaw
Avatar billede jaw Nybegynder
02. april 2005 - 14:55 #10
Det var så sandelig da så lidt :) Selv tak...
Avatar billede artico Novice
02. april 2005 - 14:59 #11
Øh.. en lille tillægs ting..
Jeg har efterfølgende en TAK.php side hvor jeg også gerne vil bruge variablen, men når jeg forsøger med: echo ".$_POST['navn']." så fejler den også.....
Avatar billede jaw Nybegynder
02. april 2005 - 15:02 #12
Ja, det gør den, for POST duer kun på den side du har som action i din <form>. Der har du så muligheden for at sende den som en GET, altså tak.php?navn=navnet eller sætte dem som SESSIONS og sende dem videre.
Avatar billede artico Novice
02. april 2005 - 15:10 #13
altså: tak.php?$navn
Avatar billede jaw Nybegynder
02. april 2005 - 15:11 #14
Du ved jeg ikke hvordan du sender videre, med header? Så vil det være:

header("Location: tak.php?navn=".$_POST['navn']);

og på tak.php kan du bruge variablen med $_GET['navn'];
Avatar billede artico Novice
02. april 2005 - 16:27 #15
Øh jeg kommer videre med:
echo "<script>top.location.href = 'index.php?nx=sider/velkommen_kunde';</script>";
Avatar billede jaw Nybegynder
02. april 2005 - 16:39 #16
Så kan du bruge:

echo "<script>top.location.href = 'index.php?nx=sider/velkommen_kunde&amp;navn=".$_POST['nanv']."';</script>";
Avatar billede haren Nybegynder
02. april 2005 - 18:05 #17
Brug en header istedet. - og slip for javascript..!

header("location: index.php?nx=sider/velkommen_kunde&amp;navn="$_POST['nanv']);

ISTEDET FOR:

echo "<script>top.location.href = 'index.php?nx=sider/velkommen_kunde&amp;navn=".$_POST['nanv']."';</script>";
Avatar billede jaw Nybegynder
02. april 2005 - 18:08 #18
Det kræver så at der ikke er noget output til skærmen før headeren bliver sendt + at &amp; skal være & når det er som en header.
Avatar billede Slettet bruger
02. april 2005 - 18:08 #19
Grunden til at det ikke virkede i starten var, at du omkransede din streng med ', men "gik du af" din streng med ". Det ville højst sandsynligt også virke med:

$htmltext  = '<b>Hej </b> med '.$_POST['navn'].' <i>dig</i>';
Avatar billede jaw Nybegynder
02. april 2005 - 18:08 #20
Men ellers enig, det er en bedre måde at gøre det på... :)
Avatar billede artico Novice
02. april 2005 - 18:14 #21
Nu vil jeg jo bare gerne have flere variabler med over.... skal de så ikke puttes i en array eller how ?
Avatar billede jaw Nybegynder
02. april 2005 - 18:16 #22
Nej, så fortsætter du bare:

header("Location: index.php?nx=sider/velkommen_kunde&navn=".$_POST['navn']."&efternavn=".$_POST['efternavn']);

osv. osv. osv. Måske ikke den smukke måde at gøre det på når brugeren ser adresselinien, men den virker...
Avatar billede bromer Nybegynder
02. april 2005 - 18:16 #23
det her indeholder vist en syntax fejl gør det ikke?

header("location: index.php?nx=sider/velkommen_kunde&amp;navn="$_POST['nanv']);

men hvis du vil have flere variabler over så brug noget som dette:

header("location: index.php?nx=sider/velkommen_kunde&amp;navn=."$_POST['nanv']."&amp;andenvar=".$_POST['andenvar']);
Avatar billede jaw Nybegynder
02. april 2005 - 18:21 #24
Gør det Bromer? :) Prøv lige dit forslag, for jeg har aldrig fået header() til at virke med &amp; - så bliver &amp; i hvert fald sendt med til adresselinien og kan ikke hentes med $_GET[].

Eller også jeg har en tosset php-setting på min lokale server?!?!
Avatar billede bromer Nybegynder
02. april 2005 - 18:27 #25
jeg fik også bare kopiret uden at tænke mig om. Syntax fejlen er den manglende string-concatenator imellem navn=" og $_POST.

Man skal ikke benytte &amp; når man benytter en PHP header. Det er jo kun når det er noget HTML der skal vises igennem browseren.
Avatar billede artico Novice
02. april 2005 - 18:34 #26
Jeg får en  Parse error: parse error, unexpected T_VARIABLE ved denne linie ?
header("location: index.php?nx=sider/velkommen_kunde&navn=."$_POST['navn']."&postnr=".$_POST['postnr']);

Mangler der ikke et " før sidste parantes ?
Avatar billede bromer Nybegynder
02. april 2005 - 18:36 #27
Nej, men du har sat et punktum forkert. Det bør være:

header("Location: index.php?nx=sider/velkommen_kunde&navn=".$_POST['navn']."&postnr=".$_POST['postnr']);

jeg mener faktisk (men er ikke sikker) at Location skal være med stort L
Avatar billede jaw Nybegynder
02. april 2005 - 18:44 #28
Jeg var også lige hurtig nok, troede det var min kommentar du kommenterede på...
Avatar billede Slettet bruger
02. april 2005 - 18:47 #29
Skal ikke være med stort L bromer.
Avatar billede bromer Nybegynder
02. april 2005 - 18:56 #30
wicez: nej jeg slog det også op i RFC'en :) Ved ikke hvorfor jeg havde den ide
Avatar billede haren Nybegynder
02. april 2005 - 19:27 #31
Fordi der er mange der gør det uden grund.. ;)
Avatar billede artico Novice
02. april 2005 - 19:38 #32
ØV. ØV.. efter jeg har skiftet til Header(location bla, bla,  så får jeg fejl:
Warning: Cannot modify header information - headers already sent by (outp.....
Avatar billede jaw Nybegynder
02. april 2005 - 19:40 #33
Jep, det er fordi du har et HTML output til din skræm før headeren sendes som jeg skrev tidligere. Hvis du ikke mener du har det, så kontroller for mellemrum/linieskift eller lign. før og efter dine <? ?> tags
Avatar billede artico Novice
02. april 2005 - 19:50 #34
det er fordi det hele kører i en index.php side men hvad kan jeg så gøre ?
Avatar billede jaw Nybegynder
02. april 2005 - 19:53 #35
3 muligheder vil jeg mene:

1. Gå tilbage til din <script></script>-mulighed
2. Læg den kode der behandler dataene i en anden (blank) fil end index.php - nok bedste løsning
3. Sætte ob_start(); i toppen af index.php - nok dårligste løsning
Avatar billede bromer Nybegynder
02. april 2005 - 20:13 #36
4. Læg alt kode der ændrer modtager sendte formularer i toppen af din index fil så du får alt logikken ordnet inden du printer noget output.
Avatar billede artico Novice
02. april 2005 - 20:37 #37
Jeg indrømmer... jeg er lige ved at opgive, der kommer hele tiden nye problemer...
måske er dette noget for jer ?
http://eksperten.dk/spm/605907
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