kostenloser Webspace werbefrei: lima-city


Dateimanagement

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t****u

    Um Dateien auf dem Server zu bearbeiten kann man -bekannterweise- ein Php-Skript schreiben. Dies ist mir auch gelungen, jedoch gibt es ein Problem bei der Sache: Die Kodierung.

    D.h. Sonderzeichen (äöüß...) werden zwar im Textfeld beim Bearbeiten als solche dargestellt, jedoch nicht als solche gespeichert (sondern als Textsalat).

    Meine Frage ist: Wie muss eine PHP-Datei Kodiert sein und welches "Charset" muss bei den Metaangaben in HTML angegeben werden um auch Sonderzeichen korrekt abzuspeichern?

    Mein bisheriger Quelltext (ohne Login; Utf-8-Kodierung; im Editor als ANSI):
    <?='<?xml version="1.0" encoding="UTF-8"?>'?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    	<title>Administration</title>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    	<style>
    body {
    	font: normal 95%/1.7 "Lucida Grande", "Lucida Sans Unicode", tahoma, verdana, arial, sans-serif;
    	color: #333;
    }
    textarea {
    	width: 100%;
    	height: 90%;
    	background: #efefef;
    	border: 1px solid #ccc;
    }
    	</style>
    </head>
    <body>
    <?php
    
    if(empty($_REQUEST['file']))
    {
    	echo '<form action="?" method="get"><label for="file">Datei</label><input type="text" name="file" id="file" /><input type="submit" value="senden" /></form></body></html>'; exit;
    }
    if(!empty($_REQUEST['test'])){ @include('common_functions.php'); var_dump(file_write_contents($_REQUEST['file'],stripslashes($_POST['test'])));}
    
    echo '<form method="post" action="?file='.$_REQUEST['file'].'"><p>'.$_REQUEST['file'].'</p>
    	<textarea name="test" rows="20" cols="60">'.htmlentities(file_get_contents($_REQUEST['file'])).'</textarea>
    	<br /><input type="submit" value="senden" />
    </form>';
    ?></body></html>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e********l

    Umlaute in Dateien gehören raus! Jede Datei mit Umlauten die du hochladen lässt, sollten die Umlaute in ihre ASCI Equivalente umgewandelt werden. Also aus Ä wird AE, ß wird ss u.s.w.

    Leerzeichen solltest du mit einem Unterstrich versehen und bei allgemein Verbotenen Zeichen den Upload generell abbrechen.

    Soviel zum generellen Datei Upload. in deinem Fall hast du ja nur Text, da würde ich in dem Formfeld einfach ein accept-charset="UTF-8" mit auf den Weg geben. Oder du speicherst deine Texte alle als ISO-8859-1. Das ist hier unser Character Set mit den Deutschen Umlauten.

    Alternativ kannst du, wie du es schon angegangen bist es über die HTML Entitity Funktionen machen. Beim lesen/speichern einfach die ENtitäten umwandeln. Oder halt als UTF-8 speichern, dafür musst deine Datenbank aber auch auf das richtige Character Set gesetzt sein.

    Evil

    Beitrag geändert: 22.11.2006 11:04:57 von evil-devil
  4. Autor dieses Themas

    t****u

    <meta http-equiv="content-type" content="text/html; ISO-8859-1" />
    <?='<?xml version="1.0" encoding="ISO-8859-1"'?>
    - Das ist die Lösung des Problems.
    thx
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!