phpbar.de logo

Mailinglisten-Archive

[php] Daten sicher einlesen, speichern und ausgeben

[php] Daten sicher einlesen, speichern und ausgeben

Alexander Skwar php_(at)_phpcenter.de
Mon, 18 Mar 2002 18:17:40 +0100


Moin!

Ich überlege gerade, wie man es anstellen kann, Daten vom Benutzer
einzulesen, abzuspeichern und dann hinterher anderen Benutzern so wieder
anzuzeigen, wie der "Eingeber" sie eingegeben hat.

Und zwar sehe ich das Problem der Gestalt, das die Zeichen ja in einem
beliebigen Zeichensatz ankommen können und die "Leser" womöglich diesen
Zeichensatz nicht gebrauchen können.

Genauer gesagt, überlege ich, was passiert wenn ein UTF-8 User ein
"Sonderzeichen" (z.B. ä) eingibt, und ein iso-8859-1 User dieses
angezeigt bekommt.  Der iso-8859-1 User kann dann ja das UTF-8 ä nicht
korrekt interpretieren, sofern die Seite nicht angibt, das nun UTF-8
Zeichen kommen.

Um dieses Problem zu lösen, dachte ich nun daran, die eingegebenen Daten
in einem einheitlichen Format zu speichern.  Hierfür würden sich ja die
iconv Funktionen anbieten.  Allerdings muß ich für iconv() ja wissen, in
welchem Zeichensatz die Daten ankommen.  Und hier komme ich nicht
weiter, da mir irgendwie nicht einfällt, wie ich dies wohl erfahren
könnte, wenn der User die Daten per <form method=get> oder post
übermittelt hat.  Im Prinzip würde ich mir vorstellen die Daten aus dem
Zeichensatz des "Eingebers" in einen allgemeinen Zeichensatz zu
konvertieren, also z.B. UTF-8.

Für die Ausgabe würde ich mir dann vorstellen, den in UTF-8 vorliegenden
Text einfach so auszugeben, und natürlich per header('Content-Type:
text/html; charset=utf-8'); angeben, das die Daten in UTF-8 kommen.
Oder wären hier irgendwelche Probleme zu erwarten?

Grob würde dieses "Programm" dann laufen:

<?php
// Eingabe:
$in_charset  = "iso-8859-15";
$out_charset = "utf-8//TRANSLIT";

$eingabe = "Text in iso-8859-15";
$text = iconv($in_charset, $out_charset, $eingabe);

// $text in DB speichern
?>

Und:

<?php
// Ausgabe:
// $text aus DB lesen
header('Content-Type: text/html; Charset=utf-8');
echo $text;
?>

Für sachdienliche Hinweise wäre ich dankbar! ;)

Alexander Skwar
--
How to quote:	http://learn.to/quote (german) http://quote.6x.to (english)
Homepage:	http://www.iso-top.de      |     Jabber: askwar_(at)_charente.de
   iso-top.de - Die günstige Art an Linux Distributionen zu kommen
                       Uptime: 1 day 5 hours 58 minutes


php::bar PHP Wiki   -   Listenarchive