webForumDet fria alternativet

Problem med svenska bokstäver i formulär

PHP

8 svar · 2 122 visningar · startad av entranced

Medlem sedan maj 200616 inlägg
Frågan#1

Hej!

Håller på med ett formulär som skickar tillbaks ett "tack mail" efter att man fyllt i och skickat iväg formuläret. Tyvärr så blir det problem med å,ä och ö i ämnesraden på tackmailet. Så här ser det ut:

http://www.entranced.se/temp/phpfel.jpg

Koden är:

<?php
$ip_address = $REMOTE_ADDR;
print "&ip=$ip_address";

$message = utf8_decode(urldecode(strip_tags(stripslashes($HTTP_POST_VARS['message']))));
$name = utf8_decode(urldecode(strip_tags(stripslashes($HTTP_POST_VARS['name']))));
$email = utf8_decode(urldecode(strip_tags(stripslashes($HTTP_POST_VARS['email']))));

$my_email = utf8_decode(urldecode(strip_tags(stripslashes($HTTP_POST_VARS['my_email']))));
$my_subject = utf8_decode(urldecode(strip_tags(stripslashes($HTTP_POST_VARS['my_subject']))));
$thanks_text = utf8_decode(urldecode(strip_tags(stripslashes($HTTP_POST_VARS['thanks_text']))));
$mail_name = utf8_decode(urldecode(strip_tags(stripslashes($HTTP_POST_VARS['mail_name']))));

if ($email != ""){
$header_info = "MIME-Version: 1.0\r\n"; 
$header_info .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$header_info .= "From: ".$mail_name." <".$my_email.">"; 

mail ($email,$reply_subject,$thanks_text,$header_info); 

$header_info = "MIME-Version: 1.0\r\n"; 
$header_info .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$header_info .= "From: ".$name." <".$email.">"; 

$message = stripslashes($message);

mail ($my_email, $my_subject, 
"Name: 
$name
<br>
Email: 
$email
<br>
<br>
Message:
<br>
$message"
, $header_info); 
}

?>

Har provat att byta ut:
$header_info .= "Content-type: text/html; charset=iso-8859-1\r\n";

mot:

$header_info .= "Content-type: text/html; charset=UTF-8\r\n";

men då blev det konstigt nog knas på å,ä, ö på andra ställen som tidigare blev rätt.

Smått desperat nu, väldigt tacksam för tips.

Ps: Har sparat filen som utf-8

Medlem sedan juni 20034 013 inlägg
#2

Om du har sparat filen som utf-8 tycker jag det är klokt att använda det. Ändra charset till utf-8 och ta bort alla utf8_decode.

Ärenderaden behöver man qp-koda:

$my_subject = imap_8bit(utf8_decode(urldecode(strip_tags(stripslashes($HTTP_POST_VAR S['my_subject'])))));

Medlem sedan maj 200616 inlägg
#3

Tack för hjälpen, tydal. Provade men tyvärr får jag ingen fason på det...

Provade att göra om scriptet, men det blir fel här också med Å,Ä och Ö (nu på fler ställen än tidigare).

<?php 
$ip_address = $REMOTE_ADDR; 
print "&ip=$ip_address"; 

$message = preg_replace("#[\\x00-\\x1F]#", "", $_POST['message']);
$name = preg_replace("#[\\x00-\\x1F]#", "", $_POST['name']);
$email = preg_replace("#[\\x00-\\x1F]#", "", $_POST['email']); 

$my_email = preg_replace("#[\\x00-\\x1F]#", "", $_POST['my_email']);
$my_subject = preg_replace("#[\\x00-\\x1F]#", "", $_POST['my_subject']);
$thanks_text = preg_replace("#[\\x00-\\x1F]#", "", $_POST['thanks_text']);
$mail_name = preg_replace("#[\\x00-\\x1F]#", "", $_POST['mail_name']);

if ($email != ""){ 
$header_info = "MIME-Version: 1.0\r\n";  
$header_info .= "Content-type: text/html; charset=UTF-8\r\n";
$header_info .= "From: ".$mail_name." <".$my_email.">";  

mail ($email,$reply_subject,$thanks_text,$header_info);  

$header_info = "MIME-Version: 1.0\r\n";  
$header_info .= "Content-type: text/html; charset=UTF-8\r\n";
$header_info .= "From: ".$name." <".$email.">";  

$message = stripslashes($message); 

mail ($my_email, $my_subject,  
"Name:  
$name 
<br> 
Email:  
$email 
<br> 
<br> 
Message: 
<br> 
$message" 
, $header_info);  
} 

?>
Medlem sedan juni 20034 013 inlägg
#4

Var blir det fel? Hur ser det ut?

Medlem sedan maj 200616 inlägg
#5

Har ringat in felen med rött.

http://www.entranced.se/temp/testform.jpg

Den övre bilden är dit formuläret skickats efter att någon fyllt i det.

Den undre är tackmailet.

Medlem sedan juni 20014 421 inlägg
#6

Kan du ge oss hela e-mail headern?

Medlem sedan maj 200616 inlägg
#7

Visst!

Så här ser headern ut på mailet som jag får efter att någon fyllt i formuläret.

Return-Path: <postmaster(at)entranced.se>
X-Original-To: admin(at)entranced.se
Delivered-To: admin(at)entranced.se
Received: from mx-j.b-one.net (mx-j.one.com [91.198.169.57])
	by mail1.b-one.net (Postfix) with ESMTP id CF67E1CE820E
	for <admin(at)entranced.se>; Thu, 11 Sep 2008 13:42:19 +0200 (CEST)
X-Virus-Scanned: by one.com
X-Amavis-Alert: BAD HEADER Non-encoded 8-bit data (char C3 hex): From:
	G\303\266sta G\303\266stasson...
X-Greylist: whitelisted by SQLgrey-1.7.4
Received: from mo1.one.com (mo1.one.com [195.47.247.27])
	by mx-j.b-one.net (Postfix) with ESMTP id 8A2A9498055
	for <admin(at)entranced.se>; Thu, 11 Sep 2008 13:42:19 +0200 (CEST)
Received: from localhost.localdomain (srv4.one.com [195.47.247.43])
	by mo1.one.com (Postfix) with ESMTP id 6AA17C33804
	for <admin(at)entranced.se>; Thu, 11 Sep 2008 13:42:19 +0200 (CEST)
Received: from 83.226.49.XXX by www.entranced.se via /temp/min/mailform.php with HTTP; Thu, 11 Sep 2008 13:42:19 +0200
To: admin(at)entranced.se
Subject: Website Mail From IP - 83.226.49.XXX
MIME-Version: 1.0
Content-type: text/html; charset=UTF-8
From: Gösta Göstasson <henke7404(at)hotmail.com>
Message-Id: <20080911114219.6AA17C33804@mo1.one.com>
Date: Thu, 11 Sep 2008 13:42:19 +0200 (CEST)

Name:  
Gösta Göstasson 
<br> 
Email:  
henke7404(at)hotmail.com 
<br> 
<br> 
Message: 
<br> 
Nu testar jag å,ä,ö.

...och så här ser headern ut på tackmailet som skickas till avsändaren:

X-Message-Delivery: Vj0zLjQuMDt1cz0wO2w9MDthPTA=
X-Message-Status: n:0
X-SID-Result: Fail
X-Message-Info: R00BdL5giqrkxkLm+5yhWCXqGQyqyqqtdMF4FTdQb2su9tjJt0GK+SJyxfAwea7JgSryBWfvd2zmrTPr/NMgYbz3dP5Zd+9T
Received: from mo1.one.com ([195.47.247.27]) by bay0-mc6-f7.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2668);
	 Thu, 11 Sep 2008 04:42:19 -0700
Received: from localhost.localdomain (srv4.one.com [195.47.247.43])
	by mo1.one.com (Postfix) with ESMTP id 13DE4C3342F
	for <henke7404@hotmail.com>; Thu, 11 Sep 2008 13:42:19 +0200 (CEST)
Received: from 83.226.49.XXX by www.entranced.se via /temp/min/mailform.php with HTTP; Thu, 11 Sep 2008 13:42:18 +0200
To: henke7404(at)hotmail.com
Subject: Thanks for your message, Gösta Göstasson
MIME-Version: 1.0
Content-type: text/html; charset=UTF-8
From: admin(at)entranced.se <admin(at)entranced.se>
Message-Id: <20080911114219.13DE4C3342F@mo1.one.com>
Date: Thu, 11 Sep 2008 13:42:19 +0200 (CEST)
Return-Path: admin(at)entranced.se
X-OriginalArrivalTime: 11 Sep 2008 11:42:20.0014 (UTC) FILETIME=[72CB18E0:01C91403]

Thank you, Gösta Göstasson. Your E-Mail has been received, and will be replied to as soon as possible
Medlem sedan juni 20014 421 inlägg
#8

Prova att använda http://se2.php.net/manual/en/function.quoted-printable-encode.php istället för imap_8bit

Medlem sedan maj 200616 inlägg
#9

colione,

tack för hjälpen! Verkligen uppskattat.

Tyvärr så är jag helt lost på sådana här saker och vet inte riktigt var jag ska börja. Håller inte på med programmering normalt. :/

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)