php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 15-08-2008, 03:17
jandayne
 Registrierter Benutzer
Links : Onlinestatus : jandayne ist offline
Registriert seit: May 2003
Beiträge: 104
jandayne ist zur Zeit noch ein unbeschriebenes Blatt
Standard HTML in Datenbank speichern

Hallo Zusammen,

ich habe das Forum schon durchsucht, aber leider keine passende Antwort gefunden.

Ich bastel an einem kleinen CMS mit dem der User via WYSIWYG-Editor HTML Code in eine Datenbank speichert, der wiederum an anderer Stelle ausgegeben werden soll.

Wenig sinnvoll wird es ja sein, den HTML Code einfach so wie er ist in der Datenbank zu speichern.

Kann mir Jemand einen Tip geben, was ich beim speichern in die DB und beim ausgeben in den Editor sowie als HTML seite beachten sollte.

Welche Funktionen sollte ich vorschalten?


Vielen Dank

Gruiß Jan
Mit Zitat antworten
  #2 (permalink)  
Alt 15-08-2008, 03:42
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard Re: HTML in Datenbank speichern

Zitat:
Original geschrieben von jandayne
Wenig sinnvoll wird es ja sein, den HTML Code einfach so wie er ist in der Datenbank zu speichern.
Warum?
Mit Zitat antworten
  #3 (permalink)  
Alt 15-08-2008, 09:25
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

sinnvoll ist das schon ... ABER .. nicht ohne den code zu überprüfen.
nicht das externer js geladen wird oder man auch php-code einbauen kann
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #4 (permalink)  
Alt 15-08-2008, 09:35
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
sinnvoll ist das schon ... ABER .. nicht ohne den code zu überprüfen.
nicht das externer js geladen wird oder man auch php-code einbauen kann
In einem CMS, wo der Benutzer sich erst anmelden muss und damit zur Content-Erstellung berechtigt ist, würde ich keine Überprüfung des Codes durchführen. Das ist ja gerade Sinn der Sache, dass du deine Website direkt über diese Weboberfläche pflegen kannst.
Und ohne eval und co. wird PHP-Code eh nur wieder ausgegeben!

Worauf du lediglich achten musst, ist das escapen von Sonderzeichen in der SQL-Query, zum Beispiel mit Hilfe von mysql_real_escape_string. Da du den HTML-Code direkt ausgeben willst, musst du bei der Ausgabe nichts weiter beachten.
Mit Zitat antworten
  #5 (permalink)  
Alt 15-08-2008, 09:58
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von PHP-Desaster
In einem CMS, wo der Benutzer sich erst anmelden muss und damit zur Content-Erstellung berechtigt ist, würde ich keine Überprüfung des Codes durchführen. Das ist ja gerade Sinn der Sache, dass du deine Website direkt über diese Weboberfläche pflegen kannst.
Und ohne eval und co. wird PHP-Code eh nur wieder ausgegeben!

Worauf du lediglich achten musst, ist das escapen von Sonderzeichen in der SQL-Query, zum Beispiel mit Hilfe von mysql_real_escape_string. Da du den HTML-Code direkt ausgeben willst, musst du bei der Ausgabe nichts weiter beachten.
ok .... stimmt eben extra nochmal getestet .. egal was man eingibt, man kann kein php-code ausführen lassen (sql-injection technik verwendet).

aber js sollte man evtl. nicht zulassen, oder iframes .. etc .. alles was das leben unschöner macht.

auch wäre es blöd wenn jemand mit "fiesem" html code das design zerschießt.

und man sieht ja an myspace und anderen seiten, was man alles mit js und co so machen kann
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #6 (permalink)  
Alt 15-08-2008, 11:44
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
aber js sollte man evtl. nicht zulassen, oder iframes .. etc .. alles was das leben unschöner macht.

auch wäre es blöd wenn jemand mit "fiesem" html code das design zerschießt.
Wenn der Kunde Mist eingibt und damit sein Layout zerhaut, ist das definitiv nicht schön. Aber es ist genau so unschön, wenn für jede etwas größere Änderung (JS, iframe, what-ever) direkt jemand anderes ran muss. Das kann der Kunde doch auch so schön über's Backend machen und du ersparst dir auch den hoffnungslosen Versuch, alle möglichen Tags oder Attribute zu verbieten.
Mit Zitat antworten
  #7 (permalink)  
Alt 15-08-2008, 12:23
jandayne
 Registrierter Benutzer
Links : Onlinestatus : jandayne ist offline
Registriert seit: May 2003
Beiträge: 104
jandayne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Zusammen,

vielen Dank für die schnellen Antworten.

Wenn ich die Funktion mysql_real_escape_string() verwende, werden ja logischerweise slashes vor die Hochkommas gesetzt. Hierfür sollte ich bei der Azusgabe dann stripslashes() verwenden, oder?

Wo mein HTML-Code jetzt so in der DB steht:
EDIT:
<p>Hallo! Das ist mein CVode \"hhghgh\"vhh</p>


speichert z.B. Joomla wie folgt:
PHP-Code:
HalloDas ist mein CVode &quot;hhghgh&quot;vhh 
Ist dies sinnvoller?

Vielen Dank
Gruß Jan
Mit Zitat antworten
  #8 (permalink)  
Alt 15-08-2008, 12:58
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.595
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von jandayne
Hallo Zusammen,

vielen Dank für die schnellen Antworten.

Wenn ich die Funktion mysql_real_escape_string() verwende, werden ja logischerweise slashes vor die Hochkommas gesetzt. Hierfür sollte ich bei der Azusgabe dann stripslashes() verwenden, oder?
Nein. Die Backslashes dienen dazu, damit die Datenbank erkennt welche Sonderzeichen zu den Daten und welche zur Syntax gehören. Die eingefügten Daten enthalten die Backslashes nicht mehr (außer die Backslashes die escaped wurden).
Mit Zitat antworten
  #9 (permalink)  
Alt 15-08-2008, 13:02
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Wenn ich die Funktion mysql_real_escape_string() verwende, werden ja logischerweise slashes vor die Hochkommas gesetzt. Hierfür sollte ich bei der Azusgabe dann stripslashes() verwenden, oder?
Nein, diese Slashes sind nur zum Entschärfen von Metazeichen. Solltest du noch weitere Slashes drin haben, die auch bei der Ausgabe sichtbar werden, handelt es sich wahrscheinlich um magic_quotes.

Zitat:
Wo mein HTML-Code jetzt so in der DB steht: (...)
speichert z.B. Joomla wie folgt...)

Ist dies sinnvoller?
Bedingt ja. Das "-Zeichen ist in HTML (genauer: XML) ein Steuerzeichen, welches du zum Beispiel für Attributwerte verwendest. Genau wie auch <, > und &. Wenn du diese Zeichen außerhalb von Tags verwendest, zum Beispiel wie hier im Text, dann musst du diese Zeichen als Entitäten schreiben.
Mit Zitat antworten
  #10 (permalink)  
Alt 15-08-2008, 13:30
jandayne
 Registrierter Benutzer
Links : Onlinestatus : jandayne ist offline
Registriert seit: May 2003
Beiträge: 104
jandayne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

um diese Zeichen als Entitäten zu schreiben, verwende ich ja die Funktion htmlentities(). Hierbei werden allerdings auch die HTML-Befehle umgewandelt.

So steht für folgenden Code:
PHP-Code:
<p>HalloDas ist mein CVode "hhghgh"vhh!</p
in meiner DB:
PHP-Code:
&lt;p&gt;HalloDas ist mein CVode &quot;hhghgh&quot;vhh!&lt;/p&gt
in der Joomla DB z.B
PHP-Code:
<p>HalloDas ist mein CVode &quot;hhghgh&quot;vhh</p

Die hier verwendeten HTML-Befehle (wie <p>) werden bei Joomla nicht umgewandelt.

Sollte ich eine andere Funktion verwenden?

Vielen ank
Gruß Jan
Mit Zitat antworten
  #11 (permalink)  
Alt 15-08-2008, 13:46
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

htmlspecialchars_decode
html_entity_decode
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #12 (permalink)  
Alt 15-08-2008, 13:59
jandayne
 Registrierter Benutzer
Links : Onlinestatus : jandayne ist offline
Registriert seit: May 2003
Beiträge: 104
jandayne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank, UzumakiNaruto, die genannten Funktionen zum decodieren, sind mir bekannt. Meine Frage ist nur, warum bei Joomla z.B. die HTML-Codes nicht umgewandelt werden. Hat dies einen bestimmten Grund?

Als Fazit entnehme ich jetzt:
Sinnvoll ist es den Code via der Funktion htmlentities() in der DB zu speichern und mit der entsprechenden Funktion bei der Ausgabe zu decodieren.

Weiteres gibt es nicht zu beachten?


Vielen Dank für die Hilfen!

GRuß jan
Mit Zitat antworten
  #13 (permalink)  
Alt 15-08-2008, 14:10
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Ich denke, die Entitäten kommen direkt aus dem Editor, den Joomla nutzt. Afaik ist das der TinyMCE. Welchen Editor du auch immer nutzt, der scheint die Entitäten nicht umzuwandeln.
Mit Zitat antworten
  #14 (permalink)  
Alt 15-08-2008, 14:12
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

naja ... kommt darauf an was für leute dort schreiben dürfen. sind es verantwortliche für die webseite oder besucher der webseite.

bei besuchereingaben würde ich schon das eine oder andere noch rausfiltern <script></script> aufrufe z.b.
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #15 (permalink)  
Alt 15-08-2008, 14:17
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
naja ... kommt darauf an was für leute dort schreiben dürfen. sind es verantwortliche für die webseite oder besucher der webseite.
Zitat:
In einem CMS, wo der Benutzer sich erst anmelden muss und damit zur Content-Erstellung berechtigt ist, würde ich keine Überprüfung des Codes durchführen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:07 Uhr.