WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   åäö i php formmail med mail() (https://www.wn.se/forum/showthread.php?t=29799)

xbreaker 2008-06-08 22:40

Tjena, ganska ny med php och äntligen fastnat för det.

Men när jag kom till delen mail() i guiden så när jag skickar iväg mailet och läser det får jag inte åäö.

Frågan jag har är hur får man så att om du skriver ÅÄÖ åäö i formuläret att visa ÅÄÖ på klient sidan istället för åäö.

Html - Index.html
Kod:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>

<form method="POST" action="contact.php" name="contact">

För/Efternamn:<br />
<input type="text" name="name" /><br />

Email:<br />
<input type="text" name="email" /><br />

Ämne:<br />
<input type="text" name="subject" /><br />

Meddelande:<br />
    <textarea name="message" cols="30" rows="10"></textarea><br />
 <input type="submit" />
 </form>

</body>
</html>


PHP - contact.php

Kod:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?php

$to = "[email protected]";
$name = $_POST["name"];
$email = $_POST["email"];
$subject = $_POST["subject"];
$message = $_POST["message"];
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/plain; charset=utf-8\r\n";
$headers = "From: [email protected] \r\n";

if(mail($to, $subject, "Meddelande: $message", $headers));

        echo ("<h2>Email successfully sent. Have a nice day!</h2><br />
 <p>
 <b>Namn: </b> $name <br />
 <b>Email: </b> $email <br />
 <b>Ämne: </b> $subject<br />
 <b>Meddelande: </b><br />
 $message</p>
 ");



?>
</body>
<html>


WizKid 2008-06-08 22:45

åäö blir det som du tar utf8 åäö och visar dem som Latin1 om jag inte minns fel.

martine 2008-06-08 23:04

Du måste koda meddelandet t.ex. som quoted-printable och sätta Content-Transfer-Encoding till det format du använder.

Se tråden:
http://www.webmasternetwork.se/f4t29665.html
som tar upp samma tema fast baklänges.

Även subject, from och to måste mime-kodas om du vill att det ska fungera fullständigt med åäö. Se http://en.wikipedia.org/wiki/MIME

Dessutom är det lite väl vågat att bara skicka vidare $_POST utan att alls titta vad det innehåller…
(Se exempelvis http://www.tonyspencer.com/2005/12/15/emai...p-contact-form/ som också ger ett tafatt försök att undvika det med eregi)

xbreaker 2008-06-08 23:23

Citat:

Originally posted by martine@Jun 8 2008, 23:04

Du måste koda meddelandet t.ex. som quoted-printable och sätta Content-Transfer-Encoding till det format du använder.
Se tråden:
http://www.webmasternetwork.se/f4t29665.html
som tar upp samma tema fast baklänges.
Även subject, from och to måste mime-kodas om du vill att det ska fungera fullständigt med åäö. Se http://en.wikipedia.org/wiki/MIME
Dessutom är det lite väl vågat att bara skicka vidare _POST utan att alls titta vad det innehåller…
(Se exempelvis http://www.tonyspencer.com/2005/12/1...-contact-form/ som också ger ett tafatt försök att undvika det med eregi)

ang vågat att checka det så vet jag att man skall göra det bara att jag ville få ordning på teckna först innan jag gick vidare, men vet hur man skall checka, input fälten...

conten transfer encoding?... wh00t, svenska tack:P..

kan nån kopiera min kod och fixa till felet och skicka in den igen vore schysst:)

hnn 2008-06-09 08:59

Ett tips, använd PHPMailer som klass istället när du skickar mail.

http://phpmailer.codeworxtech.com/

xbreaker 2008-06-09 12:47

Citat:

Originally posted by hnn@Jun 9 2008, 08:59
Ett tips, använd PHPMailer som klass istället när du skickar mail.
http://phpmailer.codeworxtech.com/

hmm, mja, jag gillar mail() väldigt mkt så låter det va.

Ingen som har koll på hur man får till tecken codning?:)

SimonP 2008-06-09 13:23

Du har även en del fel i källkoden, du kan prova detta:

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "From: [email protected] \r\n";

Magnus_A 2008-06-09 13:28

Sätt kodningen på den sida det visas på till utf-8

xbreaker 2008-06-09 13:59

Citat:

Originally posted by Magnus_A@Jun 9 2008, 13:28
Sätt kodningen på den sida det visas på till utf-8

Alla mina sidor jag gör sätter jag utf-8 på det första jag gör:)..

simonP, Skall testa ditt tips, återkommer:).

xbreaker 2008-06-09 14:03

Citat:

Originally posted by SimonP@Jun 9 2008, 13:23
Du har även en del fel i källkoden, du kan prova detta:
headers = MIME-Version: 1.0rn;
headers .= Content-type: text/plain; charset=utf-8rn;
headers .= Content-Transfer-Encoding: 8bitrn;
headers .= From: [email protected] rn;


Så där:D... det funkade tack så himla mkt:D...


Alla tider är GMT +2. Klockan är nu 08:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson