PDA

Volledige versie bekijken : Umlauts


Tallman
%Europe/Berlin %809 %2008, 19:25
Goedendag,

Ik heb een formulier hgemaakt in Flash.
Deze roept een php file aan die de informatie verstuurt.
Dat gaat op zich wel goed.
Alleen als men b.v. umlauts gebruikt, dan krijg ik alleen
vreemde tekens op de plek van deze umlaut.
üßä

Ik heb o.a. deze code geprobeert om die te verhelpen
$opmerkingen = $_POST['opmerkingen'];
$opmerkingen = utf8_encode($opmerkingen);
Helaas zonder resultaat

Iemand een idee hoe ik het kan verhelpen.

Groet Tallman

bouke_
%Europe/Berlin %814 %2008, 19:32
Ik gebruik een misschien rare manier voor dit probleem want ik replace de rare tekens weer zodat het weer normale tekens worden. Er is vast een betere manier hier voor maar die ken ik niet.
$replace = "rare_teken";
$tekst = str_replace($replace, "normale_teken", "$tekst");
PS. Ik ben ook wel benieuwd op wat voor manier het anders kan.

mech7
%Europe/Berlin %863 %2008, 20:44
Ligt waarschijnelijk aan je charset gebruik overal utf8 dus op html, headers, database tables, database connectie. Dan zal het wel goed gaan :)

Tallman
%Europe/Berlin %953 %2008, 22:52
De mail loopt niet via een database.
Wel via een php file waar ik de tekst afvang
middels de code die ik liet zien
$opmerkingen = $_POST['opmerkingen'];
$opmerkingen = utf8_encode($opmerkingen);
Het versturen doe ik via volgende code :

mail($MailTo, "Informatie aanvraag van ".$naam.")", $Totalcontent, "From: ".$MailFrom. "\nContent-Type: text/html; charset=utf-8");


Bij beide gebruik ik utf-8
Geen resultaat.

Iemand een idee

Met vriendelijke groet
Tallman

Bargok
%Europe/Berlin %387 %2008, 09:17
1. htmlentities() eroverheen werkt voor je umlauts.
2. Controleer even of je niet vatbaar bent voor mailenjection.

Tallman
%Europe/Berlin %588 %2008, 14:08
1. htmlentities() eroverheen werkt voor je umlauts.
2. Controleer even of je niet vatbaar bent voor mailenjection.

En hoe doe ik dat, snap niet helemaal wat je bedoelt.

Groet Tallman

Galerius
%Europe/Berlin %592 %2008, 14:12
Het is een functie van php, dus hij is op de site van php (http://nl.php.net/htmlentities) te vinden. :)

Tallman
%Europe/Berlin %834 %2008, 20:02
Ja het is gelukt.
Met de htmlspecialchars

$opmerkingen = htmlspecialchars($_POST['opmerkingen'], ENT_QUOTES);

Hartelijk dank voor de suggesties.

Met vriendelijke groet

Tallman

WernerL
%Europe/Berlin %859 %2008, 20:38
Ik gebruik een misschien rare manier voor dit probleem want ik replace de rare tekens weer zodat het weer normale tekens worden. Er is vast een betere manier hier voor maar die ken ik niet.
$replace = "rare_teken";
$tekst = str_replace($replace, "normale_teken", "$tekst");
PS. Ik ben ook wel benieuwd op wat voor manier het anders kan.

Dit is werkelijk de meest smerige oplossing die ik tot nu toe tegen kwam voor dit probleem, doe dat eens niet meer ! Foei :D:D

htmlspecialchars() is idd de oplossing. Kom ik net te laat in dit topic om de oplossing te geven. :( Ja ik probeer tegenwoordig mijn kennis te verspreiden kom enkel te weinig hier in php forum :D

Bargok
%Europe/Berlin %386 %2008, 09:17
Ik raad aan htmlentities te gebruiken in plaats van htmlspecialchars, aangezien htmlentities ook quotes etc. voor z'n rekening neemt.

Verder mooi dat het gelukt is! :)

Tallman
%Europe/Berlin %389 %2008, 09:20
Hallo Bargok,

Ik raad aan htmlentities te gebruiken in plaats van htmlspecialchars
Die heb ik als eerste ook geprobeerd, maar het gaf niet het juiste resultaat.
m.a.w. het werkte niet.

Dank voor je reactie

Met vriendelijke groet

Tallman

De Kale
%Europe/Berlin %390 %2008, 09:22
flash gebruikt unicode, php vangt dit goed op, maar met de mail versturen gaat het mis...
raar, dat zou goed moeten gaan...
je kunt nog expliciet php vertellen unicode te gebruiken;

misschien aan de oude kant, maar hier nog een artikel van mijn hand waar je wat aan hebt: http://www.depannekoekendekale.nl/projects/unicode/

Bargok
%Europe/Berlin %390 %2008, 09:22
Dat is vrijwel onmogelijk aangezien htmlentities, htmlspecialchars is, maar méér. Wellicht dat je charset etc. afwijkt van de standaard? Hij gebruikt standaard ISO-8859-1, als jij UTF8 gebruikt moet je dit even aangeven in de parameters.