Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Logik hinter einer Website (https://www.delphipraxis.net/103849-logik-hinter-einer-website.html)

Prototypjack 22. Nov 2007 17:26


Logik hinter einer Website
 
Moin,

Also, ich habe, seitdem nun schon sehr lange ein "Bald Zurück" Schriftzug auf meiner Seite zu sehen ist, nun endlich ein neues Design entworfen und bin bereits dabei es zu realisieren.

Da stellt sich mir folgende Frage:

Wie baue ich das ganze logisch und flexibel auf?
Da Grundgerüst wird ein PHP-Betriebenes Backend sein, welches das Design mit Daten füllt und durch Parameterweitergabe in der URL (*.php?foo=bar) funktioniert.
Ist ein PHP-Gerüst in diesem Sinne überhaupt sinnvoll? Woher ziehe ich die Daten (aus Includes, oder soll ich gleich alles per Datenbank machen? Wenn ja, muss ich mir dann auch ein Admin-Panel bauen, oder wie speise ich die Daten in die DB?).

Oder soll ich gar ein CMS benutzen, aber wie flexibel sind diese? (Und vor allem: Ist es schwer ein Template zu bauen?)

Ich würde mich freuen, wenn der eine oder andere aus dem Nähkästchen plaudert ;)

Danke schonmal und Grüße,
Max

Progman 22. Nov 2007 17:29

Re: Logik hinter einer Website
 
confixx ist ein sehr flexibles CMS und dafür Templates zu machen, ist nicht schwer.
Ich habe das mal im Einsatz gehabt und war damit zufrieden.

quendolineDD 22. Nov 2007 17:37

Re: Logik hinter einer Website
 
Zuerst mal gesagt sollte man die Benutzung von GET so gut wie möglich vermeiden aufgrund von Manipulationsgefahr.
Desweiteren solltest du die Seitenaufrufe, falls diese auch über GET geschehen sollen und dann per include/require eingebunden werden überprüft werden sollten.

Wenn du schon ein Design hast, dann dürfte deine gesamte Planung eigentlich schon abgeschlossen sein.
Ansonsten hast du einfach einen Fehler in der Reihenfolge :)

Natürlich ist es hierfür sinnvoll PHP als Backend zu benutzen. Hierfür solltest du dir jedoch im klaren sein, wie die Daten in das Design eingepasst und zurückgegeben werden. Wenn du Eingaben von Benutzern verlangst, würde ich dir raten dich mal mit SQL-Injections zu befassen.

Grüße aus Dresden

DGL-luke 22. Nov 2007 17:48

Re: Logik hinter einer Website
 
POST ist genauso manipulierbar wie GET ;-)

Auf jeden Fall darf man dem, was vom benutzer kommt, nicht trauen; SQL-Injection muss vermieden werden und direkter Zugriff aufs Dateisystem.

monta 22. Nov 2007 17:52

Re: Logik hinter einer Website
 
Zitat:

Zitat von Progman
confixx ist ein sehr flexibles CMS und dafür Templates zu machen, ist nicht schwer.

Confixx? Das ist wohl mehr ne Administrationsoberfläche für Webspaceaccounts und Server. Kann es sein, das du da was verwechselt hast ;)

quendolineDD 22. Nov 2007 17:55

Re: Logik hinter einer Website
 
Zitat:

Zitat von DGL-luke
POST ist genauso manipulierbar wie GET ;-)

Auf jeden Fall darf man dem, was vom benutzer kommt, nicht trauen; SQL-Injection muss vermieden werden und direkter Zugriff aufs Dateisystem.

Klar aber ich glaub bei einer normalen Seite ohne wichtigen Informationsgehalt machen sich nciht so viele die Arbeit ein Skript zu schreiben, welches erst einen Header beantragt und dann an die Seite sendet etc.

Was du vor allem beachten solltest und vermeiden solltest:
SQL-Injections
XSS (oder auch CSS ... Cross Site Scripting)

RobertP 22. Nov 2007 17:56

Re: Logik hinter einer Website
 
Najo Benutzereingaben sollte man immer überprüfen, egal ob get oder post.
Bei meiner Seite hab ich das Backend mit nem Template System gemacht, und die einzelnen Seiten dann einfach als Dateien die dann in das Template eingefügt werden. Als Template Engine hab ich Smarty verwendet.

Namenloser 22. Nov 2007 17:58

Re: Logik hinter einer Website
 
Hi,

also meine Seite lädt zum größten Teil ihren Inhalt aus einer MySQL-Datenbank. Für alle "Kategorien" (Home/Profil/Blog/Delphi/NED Plus) habe ich jeweils eine PHP-Datei, auf die die Aufrufe per .htaccess umgeleitet werden. Bei der nächsten Version meiner Seite werde ich diese allerdings vermutlich per Include einbinden, damit ich diese leichter an Menü-Buttons koppeln kann usw.
Ein Template zu bauen ist nicht sonderlich schwer, im einfachsten Fall macht man einfach eine PHP-Datei und gibt den Inhalt einfach per
Code:
<?php echo $variable;?>
aus.
Mein Tipp für URLs: .htaccess - Damit sehen die Adressen erstens besser aus, sind zweitens suchmaschinenfreundlicher, und bieten Dank RegExp auch etwas weniger Manipulationsgefahr. Um die Prfüung der Parameter kommt man natürlich trotzdem nicht herum.

Matze 22. Nov 2007 18:00

Re: Logik hinter einer Website
 
Hallo

Zitat:

Zitat von Progman
confixx ist ein sehr flexibles CMS und dafür Templates zu machen, ist nicht schwer.
Ich habe das mal im Einsatz gehabt und war damit zufrieden.

Ich kenne Confixx nur als kostenpflichtige Konfigurations-Software für den Webserver, ähnlich wie Plesk.
Bekannte und ganz gute CMS sind zum beispiel Typo3 oder Joomla (ehem. Mambo).

Ein Template-System muss man auch nicht selbst schreiben, Smarty ist ganz nett und leicht zu bedienen. Möchtest du es selbst machen, finden sich zahlreiche Tutorials, wenn du danach suchst. Ob du den Seiteninhalt datei- oder datenbankbasiert gestaltest, bleibt dir überlassen, flexibler bist du jedoch mit der Datenbank. Da kannst du dir ein kleines Admin-Panel schreiben (bsp. per htaccess geschützt) oder du nutzt phpMyAdmin oder andere Tools, um auf die Datenbank zuzugreifen. Je nach dem, wie oft du Dinge ändern musst, ist das wohl die einfachste Möglichkeit.

Wie Lukas erwähnt hat, ist es ganz wichtig, sämtliche Eingaben, die man manipulieren kann, zu überprüfen. SQL-Injection (mysql_real_escape_string() bzw. mysql_escape_string()) natürlich, aber auch Dateien, die du über die Parameter einbindest. Das beste ist es, beim include() den eigenen root-Pfad voranzustellen, oder beispielsweise ein Array zu nutzen, in dem die erlaubten Werte für diese Parameter stehen. ich bevorzuge die erste Methode.

Grüße

Edit: Huch :shock: Der rote Kasten scheint seinen Winterschlaf zu halten.

Zitat:

Zitat von NamenLozer
Mein Tipp für URLs: .htaccess - Damit sehen die Adressen erstens besser aus, sind zweitens suchmaschinenfreundlicher, und bieten Dank RegExp auch etwas weniger Manipulationsgefahr. Um die Prfüung der Parameter kommt man natürlich trotzdem nicht herum.

"modrewrite" wäre das Stichwort. ;) Das wird jedoch nur von einem Apache unterstützt, dieser ist also Voraussetzung. Aber sicherer ist es damit eigentlich nicht, nur ansehnlicher.

quendolineDD 22. Nov 2007 18:02

Re: Logik hinter einer Website
 
Zitat:

Zitat von NamenLozer
Mein Tipp für URLs: .htaccess - Damit sehen die Adressen erstens besser aus, sind zweitens suchmaschinenfreundlicher, und bieten Dank RegExp auch etwas weniger Manipulationsgefahr. Um die Prfüung der Parameter kommt man natürlich trotzdem nicht herum.

Klar, aber solang das DBS nicht richtig konfiguriert ist, hat er im endefekt auch einen Zappen wenn ich stored Procs aufrufe :)

Progman 22. Nov 2007 18:17

Re: Logik hinter einer Website
 
oh, sorry, ich habe tatsächlich was verwechselt, das CMS heißt contrexx:
hier die Webseite

Ghostwalker 22. Nov 2007 18:40

Re: Logik hinter einer Website
 
Ich würde sagen, das das alles eine Frage ist, wie groß und Umfangreich die Webseite wird.

Für meine private Seite verwende ich die Template-Engine von phpbb. Die Daten kommen bei mir aus ganz einfachen
Textdateien. Das reicht für meine Zwecke vollkommen aus und ist auch von der Wartung her recht einfach. Den Großteil
der Webseite läuft allerdings nicht über die Template-Engine, sondern ist selbst programmiert, was allerdings sehr
Zeitaufwendig ist.

Sollte die Webseite umfangreicher sein, so ist sicherlich der Einsatz von MySQL sinnvoll, evtl. sogar ein CMS.

Die Übergabe von Daten via Get/Post sollte, soweit es geht, vermieden werden. Beim Einsatz auf alle fälle im PHP-Script, alle möglichen und unmöglichen Falschdaten abfangen.

Prototypjack 23. Nov 2007 14:26

Re: Logik hinter einer Website
 
Moin,

Erstmal danke für die zahlreichen Antworten!

Vom Umfang sieht die Seite eigentlich so aus:
  • Meine Projekte (Umfangreichster und kompliziertester Part)
  • Integration von einem Blog (ich werde dann wohl irgendeine populäre Blogengine einbinden, vielleicht lässt sich diese auch gleich als News-Lieferant verwenden, mal sehen)
  • Möglicherweise Artikel (Tutorials)
  • Ein Forum, das ist aber separat und somit nicht von belang.

Wenn ich jetzt sagen würde, dass ich auch noch gerne eine Suche einbauen möchte, würde ich die DB als Datenlieferant festnageln, oder?(das wäre besonders interessant, wenn man Themen aus dem PhpBB und Wordpress (die wahrscheinlichste Blogengine), miteinbeziehen könnte, geht so etwas?).

Danke schon einmal,

Grüße,
Max

Matze 23. Nov 2007 14:30

Re: Logik hinter einer Website
 
Hi,

natürlich kannst Theman vom phpBB und von WP miteinbeziehen. Da beide in deinem Fall vermutlich die gleiche SQL-Datenbank benutzen würden wie deine Seite, hast du keinerlei Zugriffschwierigkeiten und kannst dir deine SQL-Abfragen selbst zusammenbasteln, wie du sie brauchst.

Gruß

Prototypjack 23. Nov 2007 14:47

Re: Logik hinter einer Website
 
Zitat:

Zitat von Matze
Hi,

natürlich kannst Theman vom phpBB und von WP miteinbeziehen. Da beide in deinem Fall vermutlich die gleiche SQL-Datenbank benutzen würden wie deine Seite, hast du keinerlei Zugriffschwierigkeiten und kannst dir deine SQL-Abfragen selbst zusammenbasteln, wie du sie brauchst.

Gruß

Achja, stimmt. Die benutzen ja dieselbe Datenbank.

Wald und Bäume .. ;) Ihr kennt den Spruch ja

Danke nochmal, dann werde ich wohl den Weg der DB wählen.

Grüße,
Max


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz