/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Prædefineret mail-indhold
Fra : Erik Ginnerskov


Dato : 05-07-07 21:44

Hej NG

En del af mit mailscript ser sådan ud :

$headers="From: ".$_POST['name']."<".$_POST['email'].">";
$headers .= "\r\nBcc: ".$_POST['email']; // linje 37

if (@mail("xxx@xxxx.dk", strip_tags($_POST['subject']),
stripslashes(strip_tags($_POST['besked'])), $headers))
{ // linje 41
echo "<p>Den " . date("d/m y") . " kl. " . date("G:i") . " " . " skrev "
.. $_POST['name'] . ":</p>";
echo "<p>" . $_POST['besked'] . "</p>";
echo "<hr style='width:30%' />";
echo "<p>Tak for din henvendelse. Jeg vender tilbage så hurtigt som
muligt.</p>";
}

Jeg ville så prøve at indsætte en forud defineret tekstlinje før det,
brugeren har skrevet. Jeg indsatte derfor dette efter linje 37:

$body .= "Den " . date("d/m y") . " kl. " . date("G:i") . " " . " skrev "
.. $_POST['name'] . ":" . \r\n . \r\n . $_POST['besked'];

.... og rettede linje 40 til dette:

stripslashes(strip_tags($body), $headers))

men så brokker parseren sig pludselig over { i linje 41

Den forstår jeg ikke. Jeg har da ikke flyttet rundt på noget, kun defineret
en variabel og puttet noget indhold i.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



 
 
Bertel Lund Hansen (05-07-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-07-07 22:28

Erik Ginnerskov skrev:

> $body .= "Den " . date("d/m y") . " kl. " . date("G:i") . " " . " skrev "
> . $_POST['name'] . ":" . \r\n . \r\n . $_POST['besked'];

Der er noget galt i den linje. Priknotationen bruges til at føje
to strenge sammen til én. \r\n er ikke en streng. Det er slet
ikke noget legalt i PHP.

Derimod kan man bruge "\r\n" fordi tegnene \r og \n inden i
dobbelte anførselstegn omsætte til retur og linjeskift.

Prøv det her i stedet:

$body .= "Den ".date('d/m y')." kl. ".date('G:i')." "." skrev ".$_POST['name'].":\r\n\r\n".$_POST['besked'];

Jeg har lavet to 'betydningsløse' ændringer:

Jeg har fjernet mellemrum omkring punktummerne, og jeg har
udskiftet " med ' i to parametre fordi jeg så ikke så nemt
blander dem sammen med de 'ydre' dobbelte anførselstegn.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Jeppe Toustrup (05-07-2007)
Kommentar
Fra : Jeppe Toustrup


Dato : 05-07-07 22:36

Der er lige en lille korrektion til din linie fra:
$body .= "Den ".date('d/m y')." kl. ".date('G:i')." "." skrev
".$_POST['name'].":\r\n\r\n".$_POST['besked'];
til:
$body .= "Den ".date('d/m y')." kl. ".date('G:i')." skrev
".$_POST['name'].":\r\n\r\n".$_POST['besked'];

Du har bare fået følgende for meget ind: "."

--
Venlig hilsen
Jeppe Toustrup

Bertel Lund Hansen (06-07-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 06-07-07 12:20

Jeppe Toustrup skrev:

> Du har bare fået følgende for meget ind: "."

Jeg har lavet et overflødigt punktum, ja. "For meget" lyder som
om det vil give en fejl, hvad det ikke gør.


--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (06-07-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 06-07-07 20:35

Bertel Lund Hansen wrote:

> $body .= "Den ".date('d/m y')." kl. ".date('G:i')." "." skrev
> ".$_POST['name'].":\r\n\r\n".$_POST['besked'];

Det var alt, hvad der skulle til, linjeskiftkoden i anførselstegn og det
kører. Tak for hjælpen

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste