SEO Welten
Buchempfehlungen
|
Wysiwyg-Editor: Speichern von Hypertext und HTML-SeitenKleines Tutorial: Wysiwyg-Editor / Speichern als HTML-SeitenÜbersicht / Seite:
Beispiel-ListingDas Listing auf dieser Seite ist kein Bestandteil des eigentlichen, zum Download
bereitgestellten Scripts, da es nur als Beispiel dienen soll, wie fertig bearbeitete Inhalte als HTML-Seiten
abgespeichert werden können. Statt als HTML-Seiten könnten die bearbeiteten Inhalte selbstverständlich ebenso
als Hypertext in einer Datenbank gespeichert werden, wobei die Vorgehensweise sich nicht grundlegend ändern
würde. Lediglich das in diesem Fall nicht der Head als solcher mit den zum Head gehörenden Elementen in
einer Datenbank abgelegt wird, sondern nur die jeweiligen Werte. <!DOCTYPE html> <html> <head> <title>Speichern</title> <meta charset="windows-1252"> <style type="text/css"> body {background-color: #F1EDDA; font-family: verdana; font-size: 13px} p.abs {text-align: center; padding: 20px} </style> </head> <body> <h1 style="text-align: center">Inhalt speichern</h1> <?php /*------------------------------------------------------------- Dieses Listing ist nur als ein Beispiel gedacht. -------------------------------------------------------------- */ if (isset($_POST["FrameInhalt"]) and !empty($_POST["FrameInhalt"])){ $quelltext = trim($_POST["FrameInhalt"]); echo "<p class=\"abs\">Der Inhalt des Frames wurde übergeben und wird ". "abgespeichert.</p>\n"; } else {echo "<p class=\"abs\">Fehler, keine Post von FrameInhalt<br>". "Die Datei wird ohne Inhalt abgespeichert.</p>\n"; $quelltext = "Ohne Inhalt"; } if (isset($_POST["TiteldsM"]) and !empty($_POST["TiteldsM"])){ $titeldsm = trim($_POST["TiteldsM"]); echo "<p class=\"abs\">Ein Titel wurde übergeben.</p>\n"; $titeldsm = preg_replace("/[^a-zA-ZäöüÄÖÜß0-9,.-]/"," ",$titeldsm); } else {echo "<p class=\"abs\">Es wurde kein Titel übergeben.</p>\n"; $titeldsm = "Ohne Titel"; } if (isset($_POST["DescriptM"]) and !empty($_POST["DescriptM"])){ $descriptm = trim($_POST["DescriptM"]); echo "<p class=\"abs\">Eine Description wurde übergeben.</p>\n"; $descriptm = preg_replace("/[^a-zA-ZäöüÄÖÜß0-9,._-]/"," ",$descriptm); } else {echo "<p class=\"abs\">Es wurde keine Description übergeben.</p>\n"; $descriptm = "-"; } if (isset($_POST["KeywordsM"]) and !empty($_POST["KeywordsM"])){ $keywordsm = trim($_POST["KeywordsM"]); echo "<p class=\"abs\">Keywords wurden übergeben.</p>\n"; $keywordsm = preg_replace("/[^a-zA-ZäöüÄÖÜß0-9,_-]/"," ",$keywordsm); } else {echo "<p class=\"abs\">Es wurde keine Keywords übergeben.</p>\n"; $keywordsm = "-"; } if (isset($_POST["DateiName"]) and !empty($_POST["DateiName"])){ $dateiname = trim($_POST["DateiName"]); $dateiname = preg_replace("/[^a-zA-Z0-9._-]/","",$dateiname); } else {echo "<p class=\"abs\">Fehler, es wurde kein Name für die Datei übergeben!<br>". "Die Datei wird unter dem Dateinamen \"namenlos.txt\" abgespeichert.</p>\n"; $dateiname = "namenlos.txt"; } /*------------------------------------------------------------- $quelltext lässt sich nicht mit htmlspecialchars() absichern. -------------------------------------------------------------- */ $speichern = "<!DOCTYPE html>\n<html>\n\n". "<head>\n". "<title>".htmlspecialchars($titeldsm, ENT_QUOTES)."</title>\n". "<meta charset=\"windows-1252\">\n". "<meta name=\"description\" content=\"".htmlspecialchars($descriptm, ENT_QUOTES)."\">\n". "<meta name=\"keywords\" content=\"".htmlspecialchars($keywordsm, ENT_QUOTES)."\">\n". "</head>\n\n". "<body>\n".$quelltext."\n</body>\n". "</html>\n"; file_put_contents($dateiname, $speichern); ?> </body> </html> Unabhängig davon, ob die Speicherung der Inhalte als HTML-Seiten erfolgt
oder die im Wysiwyg bearbeiteten Inhalte als Hypertext in einer Datenbank abgelegt werden, eine Schwachstelle
bleibt in beiden Fällen gleich. Alle eingehenden Werte lassen sich mit der PHP Funktion preg_replace() filtern
und mit den Funktionen htmlspecialchars(), htmlentities() oder strip_tags() gegen die Einschleusung von
Schadcode zusätzlich absichern, nur der eigentliche Quelltext kaum. weiterlesen » Farbpalette |
Navigation
Finden und - Optimierung -
Webcoding
Übersicht Web Services Tutorials &
und vieles mehr... |