zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden HTML Code in Datenbank speichern, aber wie?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 02.05.2011, 14:30
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 21.02.2011
Beiträge: 35
Garlandt befindet sich auf einem aufstrebenden Ast
Standard HTML Code in Datenbank speichern, aber wie?

Keine ungewöhnliche Frage.

Was muss beim speichern von HTML-Code in einer Datenbank beachtet werden? Wie muss der Code beim speichern und laden umgewandelt werden?

Bisher habe ich htmlentities() und html_entity_decode() verwendet aber mir wurde gesagt das dies nicht empfehlenswert ist. Stattdessen wurde mir mysql_real_escape_string empfohlen. Allerdings kenne ich diese Funktion nicht und nach dem was ich gelesen habe fügt sie nur zu bestimmten sonderzeichen / hinzu um diese zu escapen. Muss der daraus resultierende String noch weiter behandelt werden um in eine Datenbank geschrieben zu werden oder reicht das schon?

Gruß

Garlandt
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 02.05.2011, 14:43
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Warum hast Du denn htmlentitys() verwendet?
Beim Schreiben in Datenbanken sollten die Metazeichen von SQL entsprechend behandelt werden. Die von HTML sind da (sofern sie sich nicht überschneiden) völlig belanglos. Genau das macht mysql_real_escape_string(): sicherstellen, dass dein Datenwert nicht dein Query zerstört, was auch sicherheitsrelevant ist. Beim Lesen werden die Werte ganz normal ausgegeben, so wie sie vor der Maskierung ausgesehen haben.
__________________
github | http://dnaber.de
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 02.05.2011, 15:17
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 21.02.2011
Beiträge: 35
Garlandt befindet sich auf einem aufstrebenden Ast
Standard

Nachdem ich den HTML-String mit mysql_real_escape_string() umgewandelt habe hatten alle MySQL Metazeichen ein \, wie erwartet. Beim Auslesen musste ich diese allerdings via stripslashes() entfernen, da der code sonst nicht als HTML interpretiert wurde.

Ist das so richtig oder nicht? Im vorherigen Post steht nichts davon, dass stripslashes() beim Auslesen notwendig ist.

Gruß

Garlandt
Mit Zitat antworten
  #4 (permalink)  
Alt 03.05.2011, 16:47
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Das Verhalten kann ich so nicht nachvollziehen. Wenn ich einen String mit Metazeichen eintragen will, dann Maskiere ich diese mit der entsprechenden Funktion. Der Wert in dem Feld ist dann der String, ohne die Maskierten Backslashes.
Gerade eben getestet:
PHP-Code:
header('Content-type:text/plain;charset=utf-8');

$db_soc mysql_connect('localhost''test''wüsstet_ihr_gern');
$db mysql_select_db('test');

$string "Das ist ein wirklich 'cooler' Text!";

$insert "INSERT INTO test (name) VALUES  ('" mysql_real_escape_string$test $db_soc) . "') ON DUPLICATE KEY UPDATE name = '" mysql_real_escape_string$string $db_soc) ."'" ;

$result mysql_query$insert$db_soc );

$select "SELECT test.name FROM test WHERE test.id = '3'";

$result mysql_query$select$db_soc );
var_dump mysql_fetch_array$result ) ); 
Ergibt:
Code:
Das ist ein wirklich 'cooler' Text!
Ich vermute, dass es eine Einstellung gibt, die Srings maskiert aus einer SELECT-Abfrage zurück gibt...
__________________
github | http://dnaber.de
Mit Zitat antworten
  #5 (permalink)  
Alt 03.05.2011, 17:13
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 21.02.2011
Beiträge: 35
Garlandt befindet sich auf einem aufstrebenden Ast
Standard

Möglich. Ich wüsste sonst nicht warum ein String mit maskierten Sonderzeichen beim Auslesen aus der Datenbank in irgend einer Art verändert werden sollte, wenn es so nicht explizit vorgesehen ist.

Gruß

Garlandt
Mit Zitat antworten
  #6 (permalink)  
Alt 03.05.2011, 17:41
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.007
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

Prüfe doch mal auf Magic-Quotes:

PHP: get_magic_quotes_gpc - Manual
PHP: get_magic_quotes_runtime - Manual
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zum HTML Code Werner.W (X)HTML 5 18.01.2010 08:57
Safari "druckt" HTML code im browser diver (X)HTML 3 30.12.2009 23:45
Browser (FF & Co.) - HTML Speichern als JPG ?! darki777 Offtopic 10 27.07.2007 12:33
HTML in einer Datenbank per PHP bearbeiten trequ Serveradministration und serverseitige Scripte 3 17.07.2007 10:43
DOM und (XML mit HTML CODE) verarbeiten WIE? silence_le Serveradministration und serverseitige Scripte 4 18.06.2007 17:33


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:08 Uhr.