chris_blues: Sonderzeichen-Umwandlung ohne html-tags zu verändern?

Beitrag lesen

Oh wow!

Danke für die rote Lampe!!! Das man so auch php-funktionen einschleusen könnte, hatte ich gar nicht aufm Radar!

Und überhaupt Danke für die Antworten!!!

Eine gewisse Sicherheit ist in meinen Augen gegeben, da die erstellte Datei erst noch ins System eingetragen werden muß. Das passiert von Hand. Da müßte man also nochmal ein paar rote Ampeln aufstellen, daß man die Datei sorgfältig prüfen muß, bevor man sie tatsächlich einbindet. Oder ist das Risiko tatsächlich viel höher als ich verstehe???

Um mal ein bißchen näher ins Detail zu gehen, hier mal die Art der Verarbeitung:

Ich habe die gesamte Übersetzung in einem Array namens $loc_lang[]. Dieses liegt für die verschiedenen Sprachen in einer entsprechenden Datei: sprache.php, die dann in jede Seite includiert wird. Wenn ihr nun sagt, 'das ist absolut unsicher', dann glaube ich das und muß nun umbauen, so daß bei jedem Seitenaufruf eine Text-Datei eingelesen und konvertiert wird, in das Array eingelesen werden muß. Das dürfte ein ziemlich Ressourcen-intensiver Sortier- und Zuweisungsvorgang sein...
In diesem Falle könnt ihr den Rest des postings skippen!

deutsch.php (wird per dropdown vom User ausgewählt und die entsprechende php wird includiert)
Auszug:

<?php  
...  
  $loc_lang["remove"]                    = "entfernen";  
  $loc_lang["select_country"]            = "W&auml;hle Land!";  
  $loc_lang["country_other"]             = "Anderes";  
  $loc_lang["shipping"]                  = "Versand";  
  $loc_lang["choose_payment"]            = "W&auml;hle Zahlung!";  
  $loc_lang["banktransfer"]              = "&Uuml;berweisung";  
  $loc_lang["paypal"]                    = "PayPal";  
  $loc_lang["payondelivery"]             = "Nachnahme";  
  $loc_lang["reset_kart"]                = "Verwerfe Warenkorb";  
  $loc_lang["total"]                     = "Gesamt";  
...  
  $loc_lang["admin_notelangfile"]        = "Beachten Sie, da&szlig; Sie eine &uuml;bersetzte \"sprache.php\" im Verzeichnis shop/locale brauchen!!!<br>Sie k&ouml;nnen die Sprachdatei <a href=\"../translate.php\" target=\"_blank\">hier</a> &uuml;bersetzen. Weiter unten k&ouml;nnen Sie vorhandene Dateien verarbeiten!";  
...  
?>

Englisch habe ich noch selbst hinbekommen, damit ists aber Schluß bei mir mit den Sprachen.

In der translate.php (Wo man das gesamte Array dann übersetzt) stark vereinfacht

include('../locale/deutsch.php');  
foreach($loc_lang as $key => $value)  
  {  
   echo "<textarea name=\"$key\">$value</textarea>  
  }

das geht per $_POST an save_new_lang.php: ebenfalls stark vereinfacht!

foreach($_POST as $key => $value)  
  {  
   $str = "\$loc_lang[\"$key\"] = \"$value\";\n";  
   fputs($fHandle, $str);  
  }

So, jetzt haben wir die Datei im Verzeichnis. Damit diese auch verfügbar wird, muß sie noch in ein anderes include-file eingetragen werden, nämlich conf.php:
selbes Schema, selbes Format, nur daß dort dann folgendes auftaucht:

<?php  
...  
$conf["lang"]["0"] = "deutsch";  
$conf["lang"]["1"] = "english";  
...  
?>

Jetzt muß die eben erstellte Sprache.php hier eingetragen sein, um wirklich benutzt zu werden.

Nun wäre das der Moment, wo sich alle Weichen stellen, nicht wahr? Entweder, ich trage sie ungesehen ein, oder eben nicht.

Schlußendlich wirds dann wieder irgendwo angezeigt: Beispiel.php

<?php  
include('../locale/neue_sprache.php');  
include('header.html');  
echo "<body>\nHier wäre irgendein Inhalt, tables etc...<br>\n";  
echo "<table><tr><td>{$loc_lang["irgendwas"]}</td></tr></table>\n";  
echo "</body>\n</html>";  
?>

Und somit stellt sich die Frage:
Würdet ihr das sein lassen und alles per text->php->text konvertieren, oder ist das eigentlich in Ordnung, solange im letzten Schritt Vorkehrungen getroffen werden? (Z.Bsp. daß nur valide <a href>'s gesetzt werden und so?)

Schönen Dank!
chris