Hallo Andreas,
Das wichtigste ist ein Charset in der Seite anzugeben
und ein accept-charset-Attribut in den Formularen
anzugeben.
Charset/accept-charset-Attribut - was ist das denn?
Den charset gibst du als Attribut fuer den Content-Type mit,
also z. B.
header('Content-Type: text/html; charset=ISO-8859-1');
in PHP.
was passiert mit Zeilenumbruechen;
Nichts. Du musst halt statt auf \n auf
\015\012|\015|\012 pruefen.
hä? sorry, aber System- und Netzwerktechnik sind mir
ziemlich fremd.
Nun, da du im Internet arbeitest, ist nicht garantiert, dass
die Newlines immer mit \n maskiert sind. Deshalb musst du
stattdessen auf '\015\012|\012|\015' pruefen. Unter Windows
sind die Newlines als '\015\012' maskiert, unter Unix mit
'\012' und unter MacOS < 10 mit '\015' (total krank). Der |
bedeutet 'oder'. Das ganze kann man recht einfach
'normalisieren':
$txt = preg_replace('/\015\012|\012|\015/',"\n",$txt);
und schon sind garantiert alle Newlines mit '\n' maskiert.
wie werden eigentlich Umlaute von einem System zum
anderen uebertragen z.B. ä von Windows zu Linux
In dem Zeichensatz, den du bestimmt hast.
und wo und wie bestimmt man den?
Im Formular-Attribut 'accept-charset' und in der
Charset-Angabe im Content-Type-Header.
inwiefern validieren? - Ich prüfe, ob es $_GET bzw. $_POST
Variablen sind (PHP). Meinst Du das?
Nein. Ich meinte, dass du pruefst, ob die Werte auch sinnvoll
sind. Will heissen, ein
mysql_query("insert into blahr (blub) values ('$var')");
ist *nicht* sicher. Da sind die Werte weder escaped worden,
noch auf Plausiblitaet ueberprueft worden.
Gruesse,
CK