php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.07.2011, 14:46  
PHPascal
Gast
 
Beiträge: n/a
Standard HTML-Code in Datenbank sinnvoll?

Hallo zusammen

Seit gestern quält mich eine Frage. Ich habe ein kleines (winziges) CMS gecodet, und seit gestern eine ähnliche Funktion wie bei phpBB implementiert. Man kann dabei einen Link im Format

Zitat:
[http://www.google.ch/ Link zu Google]
eintippen und bekommt als Ausgabe auf der Website

Zitat:
<a href="http://www.google.ch/">Link zu Google</a>
Meine Frage nun: Würdet ihr den Link gleich generieren (also beim Eintrag in die Datenbank) und ihn als HTML-Code in die Datenbank schreiben, oder würdet ihr bei der Frontpage bei jedem Seitenaufruf den Klammern-Code in HTML-Code umwandeln?

Ich meine, wenn man den Link jedes Mal beim Seitenaufruf generieren lassen muss, ist das nicht gerade "performancefreundlich", aber ich bin auch kein Freund von HTML-Code in der Datenbank ... Bis jetzt wird der Code jedes Mal generiert, weil es den Server nicht merklich verlangsamt. Was würdet ihr machen und wieso?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.07.2011, 15:00  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

HTML hat nichts in der Datenbank verloren, weil es sich dabei nicht um die Daten handelt.
(Sondern nur um eine [mögliche] Auszeichungsform der Daten.)

Zitat:
Ich meine, wenn man den Link jedes Mal beim Seitenaufruf generieren lassen muss, ist das nicht gerade "performancefreundlich"
Bei Bedenken in der Hinsicht beschäftige dich mit Caching.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 14.07.2011, 16:51  
PHPascal
Gast
 
Beiträge: n/a
Standard

Ich betreibe eben einen Blog (mit meinem Mini-CMS) und betreue eine andere Internetseite mit WordPress. Grundsätzlich bin ich auch gegen HTML-Code in Datenbanken (wie ich schon geschrieben habe) und wende das auf meiner Seite auch nicht an, aber durch die WordPress-Geschichte war ich etwas irritiert, da WordPress die Links normal als HTML in die Datenbank speichert ...
  Mit Zitat antworten
Alt 14.07.2011, 17:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
(Sondern nur um eine [mögliche] Auszeichungsform der Daten.)
Was bei bbCode natürlich nicht anders ist. Allerdings würde ich die Daten so speichern, dass ich sie potentiell noch mal bearbeiten kann.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 14.07.2011, 17:15  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Was bei bbCode natürlich nicht anders ist.
Jein ...

Der BBCode zeichnet in der Form [url=...] oder auch hier [http://www.google.ch/ Link zu Google] den „Link“ ja erst als solchen aus - ohne wäre httpslashslashirgendwas nur reiner Text.

Ja, man kann argumentieren, dass das keinen wesentlichen Unterschied zu <a href="..."> macht - aber m.E. ist das schon noch mal ein anderer Level.
BBCode zieht man ja als extra Ebene „ein“, um nicht direkt HTML zu schreiben/schreiben zu müssen - und deshalb ist das für mich eher Bestandteil der Daten.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 14.07.2011, 17:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das Argument Ebene lasse ich gelten, aber aus einem anderen Grund: der entstehenden Sicherheit vor XSS. Ansonsten ist eigentlich HTML sogar exakter, um Daten zu beschreiben.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 15.07.2011, 09:54  
Benutzer
 
Benutzerbild von nedelin
 
Registriert seit: 06.05.2011
Beiträge: 98
PHP-Kenntnisse:
Fortgeschritten
nedelin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
BBCode zieht man ja als extra Ebene „ein“, um nicht direkt HTML zu schreiben/schreiben zu müssen - und deshalb ist das für mich eher Bestandteil der Daten.
Seltsame Sichtweise. Sowohl HTML, als auch BBCode sind Auszeichnungssprachen, die sich lediglich in der Komplexität der Syntax unterscheiden:

Auszeichnungssprache vs. Vereinfachte Auszeichnungssprache

Insofern erscheint mir Deine Sichtweise etwas inkonsequent, da Du danach unterscheidest, ob der Browser das Markup parst (HTML) oder nicht (BBCode).

.
nedelin ist offline   Mit Zitat antworten
Alt 15.07.2011, 10:12  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Nunja, irgend einen Anhaltspunkt muss deine Anwendung ja haben, wo die Daten die du hinterlegen willst wann was vorsehen. Beispiel Forenpost:

- Kann bilder enthalten
- Kann Quotes und Code-Blöcke enthalten
- Kann Listen enthalten
- Kann Einrückungen enthalten
- Wird Beitragstext enthalten
- Enthält zweckgebundene Formatierungs-Notierungen
- Kann URLs enthalten ( in jedweger Form )

würdest du jetzt hingehen und den ganzen Post aufsplitten in alle Möglichen Fragmente die du später Konkatinierst, benötigst du unzählige Datenbankzeilen bei großen Texten mit vielen Formatierungnotierungen, wenn du gänzlich auf jedwege Auszeichnungssprachen verzichtest. Diese Zeilen arrangierst du dann möglicherweise mit next_block_post_id-notierungen damit du später weißt was an diesen Post weiter angeklebt werden soll, wenn er wieder ausgegeben wird.

BBCode ist generell zwar eine vereinfachte Auszeichnungssprache, allerdings ist es die Aufgabe von BBCode auch das es verhindert das der Enduser der Eingaben auf einer Webseite tätigt, mit komplexen html-Angaben bspw. das design zerschießt. BBCode ist ( richtig realisiert ) in der Lage soviel "benutzerdefinierung" zu ermöglichen, wie das Design verkraftet. Beispielsweise werden Bilder auf ein erträgliches Maß reduziert die mit IMG-BBCode angegeben wurden, ein IMG-Tag wär bspw. in der Lage das Bild mit einer auflösung von 4000x4000 einzubinden.

Ich würde HTML nur in Datenbanken hinterlegen um subtemplates zu speichern. Nie aber um bspw. Userkommentare zu speichern.

Du könntest jetzt zwar mit dem Argument kommen, die eingegebenen HTML-Definitionen nochmals zu parsen und dem design entsprechend möglicherweise zu manipulieren. Das wäre aber bei Bereitstellung von BBCode nicht nötig. Auch erschwert die Verwendung von benutzerdefiniertem HTML die Validierung des auszugebenen HTMLs, da du sicher sein kannst das nicht jeder User auch valides HTML eingibt so das du als Endprodukt bei der Ausgabe ein wellformed HTML-Doc zusammenstecken kannst.

In Summe: BBCode gehört mit in die DB, HTML nicht.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 15.07.2011, 11:37  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.729
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Einfach die originalen Eingabedaten speichern. Wenn die HTML sind, dann als HTML. Wenn nicht, dann nicht.
__________________
Blog | Buch | Kaloa
mermshaus ist gerade online   Mit Zitat antworten
Alt 15.07.2011, 13:03  
PHPascal
Gast
 
Beiträge: n/a
Standard

Trotzdem finde ich es persönlich sinnvoller, wenn man Links zum Beispiels als BBCodes aufbereitet, anstatt den HTML-Code reinzuschreiben. Dann hat auch jeder Link die gleiche Formatierung, es gibt keine Sonderwürste und Ausnahmen: Die Website wirkt einheitlicher.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] HTML + Mini-PHP Code auslagern BangkokInLove PHP Einsteiger 8 29.06.2011 13:45
[Erledigt] Html Code aus einer JavaScript Variable formatieren? M1N€R2010 JavaScript, Ajax und mehr 17 11.03.2011 15:19
HTML Code zurückwandeln? Extremefall PHP Einsteiger 10 05.02.2011 16:26
HTML Code überprüfen und automatisch korrigieren Crypt PHP Tipps 2010 8 10.08.2010 15:56
[Erledigt] Datenbank - Html Code speichern Ineluki PHP Tipps 2010 3 27.06.2010 15:14
[Erledigt] Wie Parse ich eine xml Datei die html code enthält? Squall PHP Tipps 2010 5 12.03.2010 19:08
[Erledigt] PHP Variable als HTML Code ausgeben! masterwebs PHP Tipps 2009 5 31.12.2009 11:05
nl2br mit HTML Code stayInside PHP Tipps 2009 1 26.12.2009 21:27
[Erledigt] HTML Email kommt nur mit Code an maastradamus Scriptbörse 22 28.09.2009 14:01
HTML Code in PHP einbinden solvero PHP Tipps 2009 5 11.02.2009 10:17
HTML Code im PHP Datei möglich? raphaelf PHP Tipps 2008 10 24.07.2008 15:56
[Erledigt] PHP Code aus Datenbank ayti PHP Tipps 2008 8 26.05.2008 19:40
Nur bestimmten Html Code zulassen? litterauspirna PHP Tipps 2008 5 29.04.2008 12:30
HTML Code Simon9990 PHP Tipps 2005-2 4 08.08.2005 13:17
HTML Code in Variable - GEFAHR? Beatbox PHP Tipps 2004-2 4 18.12.2004 14:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
html code sinnvoll in datenbank, code-datenbank, html code in datenbank

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum