Använder en ganska enkel mailer (se nedan).
De svenska tecken som finns i skriptet kommer fram OK. Men de tecken som användaren skrivit in i formuläret blir skit. Å blir Ã¥, ä blir À och ö blir ö.
Både formuläret och skriptet är sparade i utf-8.
Men det verkar antingen som att det skiter sig mellan formuläret och skriptet, och då är det väl någon inställning som ska göras på servern?
Eller så är det väl skriptet som behöver tala om att själva meddelandet ska skickas som content-type:text/plain och charset: utf-8, samt content-transfer-encoding 8bit?
<?php
$name = $_POST["name"];
$phone = $_POST["phone"];
$company = $_POST["company"];
$message = $_POST["message"];
$from = $_POST["from"];
$verif_box = $_POST["verif_box"];
$msg_body = "Hej\n"
."Ett nytt mail har kommit från hemsidan!\n\n"
."Namn....: " . $name . "\n"
."E-post..: " . $from . "\n"
."Telefon.: " . $phone . "\n"
."Företag.: " . $company . "\n\n"
."Meddelande:\n"
.stripslashes($message);
$from = stripslashes($from);
// check to see if verificaton code was correct
if(md5($verif_box).'a4xn' == $_COOKIE['blabla']){
// if verification code was correct send the message and show this page
mail("mottagare@mottagare.se", 'Här kommer mail!', $_SERVER['REMOTE_ADDR']."\n\n".$msg_body, "From: $from");
// delete the cookie so it cannot sent again by refreshing this page
setcookie('blabla','');
} else {
// if verification code was incorrect then return to contact page and show error
header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
exit;
}
?>
Edit: För övrigt ser jag att du använder stripslashes. Det vore bättre att stänga av magic quotes och, ta bort stripslashes och istället säkra dina DB-data själv med mysql_real_escape_string. Detta eftersom magic quotes är på väg att försvinna från PHP, och då kommer alla som förlitar sig på det att riskera att utsätta sig för SQL-injections.
Edit: För övrigt ser jag att du använder stripslashes. Det vore bättre att stänga av magic quotes och, ta bort stripslashes och istället säkra dina DB-data själv med mysql_real_escape_string. Detta eftersom magic quotes är på väg att försvinna från PHP, och då kommer alla som förlitar sig på det att riskera att utsätta sig för SQL-injections.
Jag kan nada om php (tyvärr), men försökte att ange bl.a. charset på olika sätt utan att det löste problemet. Jag vet helt enkelt inte var eller hur sådan kod ska läggas in.
<?php
$name = $_POST["name"];
$phone = $_POST["phone"];
$company = $_POST["company"];
$message = $_POST["message"];
$from = $_POST["from"];
$verif_box = $_POST["verif_box"];
$msg_body = "Hej\n"
."Ett nytt mail har kommit från hemsidan!\n\n"
."Namn....: " . $name . "\n"
."E-post..: " . $from . "\n"
."Telefon.: " . $phone . "\n"
."Företag.: " . $company . "\n\n"
."Meddelande:\n"
.stripslashes($message);
$from = stripslashes($from);
// check to see if verificaton code was correct
if(md5($verif_box).'a4xn' == $_COOKIE['blabla']){
// if verification code was correct send the message and show this page
$msg_body_iso = utf8_decode($msg_body);
$msg_subject_iso = utf8_decode('Här kommer mail!');
mail("mottagare@mottagare.se", $msg_subject_iso, $_SERVER['REMOTE_ADDR']."\n\n".$msg_body_iso, "From: $from");
// delete the cookie so it cannot sent again by refreshing this page
setcookie('blabla','');
} else {
// if verification code was incorrect then return to contact page and show error
header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
exit;
}
?>