Mit PHP-include separate Website-content
Ich bin auf der Suche nach Beratung über die beste Vorgehensweise für die Trennung von Website-Inhalt in logische Blöcke. Ich möchte eine Kopfzeile und eine Fußzeile, die sind konstant auf der gesamten Website, so dass, wenn ich mehrere Seiten mit verschiedenen Inhalten, Sie alle Aussehen, als unten — änderungen an der Kopf-und Fußzeile dann automatisch aktualisiert, ohne dass ich das ändern jeder einzelnen Seite.
<?php
include 'header.php';
?>
<body>
<p>page content here</p>
</body>
<?
include 'footer.php';
?>
Den header.php
enthalten würde, die Eröffnung <html>
, <head>
und statische Inhalte, und das footer.php
enthalten würde jede zusätzliche statische Inhalte und die Schließung </html>
tag. So, meine Frage ist: Ist das ein guter Ansatz? Ich bin besorgt, dass die Verbreitung der <html>
- tags in mehreren Dateien ist eine schlechte Praxis. Wenn ja, was ist der richtige Weg, diese Art von design?
</sarcasm>
InformationsquelleAutor persepolis | 2011-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, Ihr Ansatz ist falsch.
Hier sind die wichtigsten Fehler, die in Ihrem design:
Die wichtigste Regel, die jeder auswendig lernen:
Nicht ein einzelnes Zeichen gesendet werden, in browser, bis alle Daten bereit.
Warum?
HTTP header
. Manchmal müssen wir, um Sie zu senden. Und es wird unmöglich, wenn Sie bereits Ihre kunstvollen HTML-header gesendet werden.<title>
- tag für Ihre Webseiten, basierend auf content der Seite. Ist es nicht extrem Häufig, was? Aber Sie können nicht machen es ohne Verwendung von Vorlagen.So, müssen Sie haben eine gemeinsame Website-Vorlage mit Kopf-und Fußzeile und auch spezielle Vorlagen für die jedes php-Skript.
Ein Beispiel-layout wird so sein:
.1. Seite selbst.
gibt es nichts aber nur sammeln der benötigten Daten und fordert eine Vorlage:
.2.
template.php
welches ist Ihre Haupt-Website-Vorlage,besteht aus Ihrem Kopf-und Fußzeile:
.3. und schließlich
links.tpl.php
ist die eigentliche Seite Vorlage:einfach, sauber und wartbar.
Ich muss zugeben, es ist nur für eine vier Seite, einfache Website, aber danke für die Zeiger in die richtige Richtung - die Probleme, die Sie aufwerfen, sind Dinge zu denken, als ich in komplexeren Website-designs!
eine solche Anordnung ist auf der Grundlage jahrelanger Forschung und Erfahrung. Sie werden in der Lage sein zu erstellen, die Anzahl der Websites, die alle mit unterschiedlichen designs, ohne Berührung der core-Dateien. Das ist der große Vorteil bei der Verwendung von Vorlagen. Auch gibt es viele andere Verbesserungen. Zum Beispiel, basierend auf der Datenbank Abfrage-Ergebnis haben Sie zu senden nur die HTTP-header-oder JSON-Daten zu dienen AJAX-call. Es wouuld sein, einfach mit meinem layout und es ist unmöglich Sie mit Ihren ersten. und so weiter. Nachdem alle, es wäre einfacher zu bauen, auch 4-Seiten-Seite mit.
InformationsquelleAutor Your Common Sense
Im Gebäude an der
Your Common Sense
's Antwort, es gibt nicht einen guten Grund zu haben 2 Dateien für jede Seite. Sie können ganz einfach kombinieren Sie Ihre Vorlage (YCS genannt .tpl.php -) und deine eigentliche Seite in eine Datei.Ersten, beginnen Sie mit einer Klasse, die Sie erweitern können, wie Sie Ihre Vorlage muss erweitern:
Dann, machen Sie Ihr layout:
Und schließlich, fügen Sie Ihre Seite mit dem Inhalt:
ContentBody, ist der Inhalt hello.php (oder welche Datei Sie sich befinden). Der trick ist
__FILE__
. So ist es nur eine Datei pro Seite, mit einer einzigen template-Datei und layout-Datei.InformationsquelleAutor mattmc3
Dies ist ein grundlegender Ansatz, aber, ja, es funktioniert 🙂 ich wäre sicher die Mühe mit einer Menge von templates und OOP aber Sie sind definitiv auf dem richtigen Weg
Als ich kann keine Kommentare mehr, dann werde ich hier beantworten ; -) Wenn er braucht einen eigenen Titel dann braucht er einige erweiterte Funktionen. Also, wie ich schon sagte, dies ist ein basic Ansatz. Aber am Ende, wenn er wirklich eine statische Kopfzeile/Fußzeile, und diese auch wirklich benutzen, überall, gut, ja, das ist ein guter Weg zu gehen.
So ofc-Sie stören könnte mit einigen erweiterten Header mit den Parametern, die Sie füttern könnten auf jeder Seite. Sie könnte gehen auf ein ganzes MVC-Zeug. Am Ende nur sagen, ihn zu verwenden einen vorgefertigten Rahmen und Hör auf. Wie konnte er nur lernen, wenn Sie nicht lassen Sie ihn einige Versuch und Irrtum ?
Dude, löschen Sie den benutzerdefinierten Titel Sache. Viele Menschen kümmern sich einfach nicht darum!
Ich verstehe, dass Sie wollen, um ihn mit einer besseren Qualität html. Aber dann müssen Sie bieten ihm die Möglichkeit zum hinzufügen von metz aus einem array. Und custom-css/js für jede Seite. Vielleicht sogar zu verketten, um weniger http-request. Sie konnte.
warum Listen Sie alle diese Verbesserungen einzeln? es ist alles standardmäßig verfügbar mit meinem design. Keine Notwendigkeit, Sie alle zu erwähnen
InformationsquelleAutor tsadiq
index.php -- enthält header -, footer-und content-basierten auf ANFRAGE variabel.
header.php -- header content
footer.php -- footer content
content1.php, content2.php usw.
index.php:
wenn du möchtest, dass die URL zu gehen http://www.domain.com/pagename wo die Seite, die Sie versuchen zu laden index.php "pagename", verwenden Sie HTACCESS und einige URL-Rewriting: http://corz.org/serv/tricks/htaccess2.php
das ist die Datei die Injektion hier, extrem gefährliche Sicherheitslücke
Ja, das ist eine große Sicherheit-Nein. Tun Sie es nicht auf diese Weise.
ich war der Annahme, dass $_REQUEST['Seite'] wäre gereinigt/überprüft werden, bevor es verwendet wurde. ich hatte den Eindruck, dass bpeterson76 war gerade auf der Suche nach dem Weg, es zu tun, nicht 100% des Codes.
ich habe den Eindruck, er ist nur zu lernen, und Sie müssen nicht täuschen, jemanden in einem solchen Falle ^^
InformationsquelleAutor circusdei