Avatar billede Hanen333 Nybegynder
11. november 2015 - 17:52 Der er 11 kommentarer og
1 løsning

Formular - Send UTF-8 svar

Hejsa

Jeg har fundet dette, som jeg har modificeret efter bedste evne og som nu næsten virker perfekt. Det eneste issue jeg har er, at jeg ikke kan finde ud af at få det til at returnere mails i UTF-8 format. Håber virkelig, at nogen kan hjælpe mig?

Jeg har 3 filer:


index.php:

<form method="POST" onSubmit="return valider(this);" action="bekraeft.php" name="form" id="form" style="text-align:left" accept-charset='UTF-8'>

Navn: <input name="navn" type="text" id="navn" class="hel_felt">
Mail: <input name="mail" type="text" id="mail" class="halv_felt">

</form>



bekraeft.php:

<?php
$navn = $_POST["navn"];
$mail = $_POST["mail"];

echo "Kære $navn/n/n Du har udfyldt...";

$bruger =
"Kære $navn";
$mail = $_POST["mail"];

<input type="submit" value="Bekræft" />

<form action="faerdig.php" method="post">
<?php
if(isset($_POST['box'])){
?>
<input type="hidden" name="box" value="<?php echo $box ?>" />
<?php
}
?>
<input type="hidden" name="bruger" value="<?php echo $bruger ?>" />
<input type="hidden" name="mail" value="<?php echo $mail ?>" />
</form>


faerdig.php:

<?php

  (mail($_POST['mail'], 'Subject tekst', $_POST['bruger'], "From: No_Reply@mail.dk"));
 
  header("location: tak.php");

$File = "data.txt";
$Handle = fopen($File, 'a');
fwrite($Handle, $_POST['data']);
fclose($Handle);

?>

Kan nogen hjælpe mig med hvordan jeg får den til at returnere æ-ø-å korrekt i svarmails?
Avatar billede Hanen333 Nybegynder
11. november 2015 - 19:27 #1
Please! Jeg har virkelig hårdt brug for hjælp. Er der slet ikke nogen som vil give det et forsøg?
Avatar billede olsensweb.dk Ekspert
11. november 2015 - 19:50 #2
har du prøvet at kigge på mail_utf8

http://php.net/manual/en/function.mail.php#108669

eller denne, anvender en hjælpe function, denne mail_utf8 anvender jeg selv
http://www.eksperten.dk/spm/961816#reply_7937170

så udskift
(mail($_POST['mail'],
med 
(mail_utf8($_POST['mail'],
Avatar billede Hanen333 Nybegynder
11. november 2015 - 20:50 #3
Det lader ikke til at lykkedes. Jeg får denne fejl:
Fatal error: Call to undefined function mail_utf8() in /customers/a/c/7/www.web.dk/httpd.www/him/faerdig.php on line 3
Avatar billede olsensweb.dk Ekspert
11. november 2015 - 20:53 #4
har du kopieret functionen mail_utf8 ind i projected ??
og hvis det er olebole's også hjælpe functionen
Avatar billede Hanen333 Nybegynder
11. november 2015 - 21:04 #5
Jeg har ændret faerdig.php til:

<?php

  (mail_utf8($_POST['mail'], 'Subject tekst', $_POST['bruger'], "From: No_Reply@mail.dk"));
 
  header("location: tak.php");

$File = "data.txt";
$Handle = fopen($File, 'a');
fwrite($Handle, $_POST['data']);
fclose($Handle);

?>
Avatar billede Hanen333 Nybegynder
11. november 2015 - 21:04 #6
Formoder det er det du mener? :-)
Avatar billede olsensweb.dk Ekspert
11. november 2015 - 21:17 #7
disse 2 functionen skal kopieres ind i faerdig.php
og ligges før du kalder (mail_utf8($_POST['mail'],........

   
<?php

function escapeAddr($addr) {
    $check = preg_match('/(.*)<(.*)>/', $addr, $a);
    if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>';
    return $addr;
}
function mail_utf8($to, $subject='Intet emne', $message='', $from='', $cc='', $bcc='', $type='plain') {
    $from = escapeAddr($from);
    $header = 'From: '.$from.PHP_EOL
            . 'Return-Path: '.$from.PHP_EOL
            . 'Reply-To: '.$from.PHP_EOL
            . 'MIME-Version: 1.0'.PHP_EOL
            . 'Content-type: text/'.$type.'; charset=UTF-8'.PHP_EOL
            . 'X-Mailer: PHP/'.phpversion().PHP_EOL
            . 'Content-Transfer-Encoding: 8bit'.PHP_EOL;
    if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL;
    if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL;
    $header .= PHP_EOL;
    return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
}

(mail_utf8($_POST['mail'], 'Subject tekst', $_POST['bruger'], "From: No_Reply@mail.dk"));
Avatar billede Hanen333 Nybegynder
11. november 2015 - 21:40 #8
Åååhhh ok... Nu laver den ikke længere fejl, men jeg modtager stadig en mail uden æ, ø og å?
Det er jo 'bruger' som sendes videre fra bekraeft.php. Er det ikke den der skal defineres som utf-8? Måske et dumt spørgsmål...? :-)
Avatar billede Hanen333 Nybegynder
11. november 2015 - 22:27 #9
Hurra! Det lykkedes :-) Jeg skulle bare bruge &aelig; &oslash; &aring; + din løsning. Tusind tak for hjælpen og læg så lige et svar :-D
Avatar billede Hanen333 Nybegynder
11. november 2015 - 22:50 #10
Jeg har lige et tillægsspørgsmål... Hvis jeg skal have sendt en mail til en fast mailadresse, hvordan får jeg så den utf-8'et også?

Det virker ikke med mail_utf8 på denne:

mail('mail@mail.dk', 'Subject tekst'], "From: No_Reply@mail.dk");
Avatar billede olsensweb.dk Ekspert
12. november 2015 - 10:09 #11
#9
det burde ikke være nødvendigt, hvis siden er
vist som utf8 (html meta tag)
encoded som utf8 (editor instilling)
gemt som utf8

#10
denne linje
mail('mail@mail.dk', 'Subject tekst'], "From: No_Reply@mail.dk");


skal laves om til dette
mail_utf8('mail@mail.dk', 'Subject tekst', '', 'No_Reply@mail.dk');
Avatar billede Hanen333 Nybegynder
12. november 2015 - 10:14 #12
Det hele virker... det er bare mig der er lidt 'gumpe-tung' :-)
Tusind tak for hjælpen! Det er virkelig meget værd for mig!
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