PDA

Bekijk Volledige Versie : Re: Ascii-problemen met verwerken gegevens via een formulier in



Eduard Bekker
12/06/04, 20:35
On 12-06-2004 16:39, in article caf4ji$hso$1@news.tue.nl, "Daniel Tryba"
<news_nl.internet.www.server-side@canopus.nl> wrote:


> Pak dus het probleem bij de bron aan en verzoek de client de resultaten
> in een door jou bepaald characterset te gieten.

Je kunt nogal moeilijk vragen om aan iedereen die je gastenboek invult de
resultaten in een door mij bepaalde characterset te gieten.

<http://nl2.php.net/manual/en/function.htmlentities.php>

De aanwijzingen opvolgend kom ik tot het volgende:

Voor het opvangen en opslaan van de verstuurde gegevens:

$body_opslaan=$_POST['body_opslaan'];
$body_opslaan=str_replace(" ", "&nbsp;&nbsp;", $body_opslaan);
$body_opslaan=str_replace("\'", "'", $body_opslaan);
$body_opslaan=str_replace('\"', '"', $body_opslaan);

$body_opslaan=htmlentities($body_opslaan);
$body_opslaan=str_replace("&gt;", ">", $body_opslaan);
$body_opslaan=str_replace("&lt;", "<", $body_opslaan);
$body_opslaan=str_replace("&amp;", "&", $body_opslaan);
$body_opslaan=str_replace(chr(128), "&euro;", $body_opslaan);

if ($body_opslaan)
{
$fp = fopen("body.txt", "w");
fputs($fp, $body_opslaan);
fclose($fp);
}

En voor het versturen per formulier:

$body=join("", file("body.txt"));
$body = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$body);

$body=htmlentities($body);
$body=str_replace("&gt;", ">", $body);
$body=str_replace("&lt;", "<", $body);
$body=str_replace("&amp;", "&", $body);
$body=str_replace(chr(128), "&euro;", $body);

echo "<FORM action='_boot.php' method='POST'>\n";
echo "<input TYPE='hidden' NAME='editor' VALUE='true'>\n";
echo "<TEXTAREA class='wit' NAME='body_opslaan' COLS='45'
ROWS='30'>".$body."</TEXTAREA><BR>\n";
echo "<input class='input10' TYPE='submit' VALUE='Opslaan'>";
echo "</FORM>\n\n";

De problemen worden hiermee echter niet opgelost.
Op de Mac werkt het goed, maar onder Windows niet: IE op WindowsXP geeft bij
opstart de goede HTML, maar na één keer versturen, klopt er niets meer van
de ASCIIcodes >127.
(ik noem dat ook ASCII-codes, maar blijkbaar heet dat dus anders).
Het vreemde is dat Explorer het nog wel goed weergeeft, maar dat er van de
source niets meer klopt.


--
----------------------*
Met vriendelijke groeten,
Eduard Bekker
http://www.websitez.nl
----------------------*

Eduard Bekker
13/06/04, 16:15
On 12-06-2004 22:53, in article slrnccmrb1.gh1.robert@home.allyourbass.org,
"robert" <{n.c.s.m}@allyourbass.org.invalid> wrote:

> http://www.w3.org/TR/html401/interact/forms.html#adef-accept-charset
>
> Als je een goedondersteunde charset gebruikt (UTF-8, ISO-Latin-1 of
> ISO-Latin-9), dan is de kans groot dat dat overal werkt.

Door deze tips ben ik toch eens in de header van mijn html-documenten gaan
kijken.

En wat stond daar?

CONTENT="text/html; charset=macintosh"

Dom!
Dat heb je met mensen, die slechts een soort steenkolen ICT-ers zijn als ik.

Heb het nu vervangen door

CONTENT="text/html; charset=windows-1252">

Zowel onder Windows als op de Mac werkt het nu goed.


Nu vraag ik me alleen nog af wat het wezenlijke verschil is met.

CONTENT="text/html; charset=utf-8"

En

CONTENT="text/html; charset=iso-8859-1"


--
----------------------*
Met vriendelijke groeten,
Eduard Bekker
http://www.websitez.nl
----------------------*