Alle Seiten aus einer zentralen index.php starten...
Marcel
- php
Hallo,
ich habe bisher eine Seite, die aus vielen verschiedenen PHP-Dateien besteht. Jetzt bin ich auf die Idee gekommen (oder besser: Ich hab gesehen, dass andere Seiten das so machen) alle Seiten aus einer Indexdatei heraus zu starten.
Follgendes hab ich mir überlegt:
##############
<a href="index.php?page=home">Home</a>
<a href="index.php?page=gb">Gästebuch</a>
<a href="index.php?page=forum">Forum</a>
index.php:
<?
if (isset($_GET["page"]))
$page = $_GET["page"] . ".php";
else
$page = "home.php";
if (!file_exists($page))
$page = "home.php"
include ($page);
?>
##############
Was haltet ihr davon?
Was sind eurer Meinung nach die Vor- bzw. die Nachteile?
mfg Marcel
guten Abend,
Was sind eurer Meinung nach die Vor- bzw. die Nachteile?
Solange dein PHP-Code "sauber" ist, gibt es nichts, was dagegen spricht - aber auch nichts, was dich zwingend dazu verpflichtet, so zu verfahren. Kurz: es ist eigentlich die übliche Praxis und damit ein bißchen langweilig.
Grüße aus Berlin
Christoph S.
Auch einen schönen Abend
Solange dein PHP-Code "sauber" ist, gibt es nichts, was dagegen spricht - aber auch nichts, was dich zwingend dazu verpflichtet, so zu verfahren. Kurz: es ist eigentlich die übliche Praxis und damit ein bißchen langweilig.
Was würdest Du denn vorschlagen?
Für jede Seite eine eigene Datei, und head.inc.php u.ä. jeweils includen klingt für mich auch nicht unüblicher oder spannender...
Gruss Louis
hi,
Was würdest Du denn vorschlagen?
Nichts. Mach das erstmal so. Wenns funktioniert, ist ja alles gut, und wenn du dabei auf die Nase fällst, meldest du dich wieder hier.
Christoph S.
Hi Christoph
Nichts. Mach das erstmal so. Wenns funktioniert, ist ja alles gut, und wenn du dabei auf die Nase fällst, meldest du dich wieder hier.
Ich bin nicht Marcel. Ich habs auch nicht so gemacht. Und bin auch nicht auf die Nase gefallen.
...nichts, was dich zwingend dazu verpflichtet, so zu verfahren. Kurz: es ist eigentlich die übliche Praxis und damit ein bißchen langweilig.
Diese Aussage ist eher etwas herablassend, weshalb ich annehme, dass Du eine supertolle, spannende Lösung hast, und diese wiederum hat meine Neugierde geweckt.
mfg
Louis
und wenn du dabei auf die Nase fällst, meldest du dich wieder hier.
Hallo Christoph,
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /web/index.php:20) in /web/gbook/index.txt on line 47
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /web/index.php:20) in /web/gbook/index.txt on line 47
Was ist denn das Problem? Hat vorher Funktioniert.
mfg Marcel
hallo,
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /web/index.php:20)
Hm. Wo kommt denn diese "20" her?
in /web/gbook/index.txt on line 47
Ich weiß leider nicht, was in Zeile 47 deiner Datei steht. Schau nach, was in dieser Zeile eventuell falsch sein könnte. Und: brauchst du wirklich unbedingt Cookies (ich persönlich kann die Kekse nicht ausstehen und lösche sie, so oft ich kann).
An sich ist ein "warning" ein Zeichen dafür, daß bloß noch eine klitzekleine Kleinigkeit irgendwo zu beheben ist. Die Fehlermeldung sagt dir doch auch, was da nicht geklappt hat. Aber deinen Code kennst natürlich nur du.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
danke für deine Tipps, Problem hab ich gelöst.
mfg Marcel
Hallo,
ich habe schon ein zweites noch viel größeres Problem.
ich erklärs am besten gleich am Beispiel:
Früher hatte ich eine gaestebuch.php die das Gästebuch erzeugt hat. Sie hat immer 20 Einträge auf eine Seite gemacht. Man konnte man über einen Link blättern (z.B. gaestebuch.php?seite=5).
Das funktioniert jetzt natürlich nicht mehr, denn ich kann die gaestebuch.php nicht mehr direkt ansprechen. Die soll ja über index.php included werden.
Jetzt dachte ich wenn ich http://www.treffpage.de/index.php?page=gbook&seite=5 zum blättern verwende müsste es wieder gehen. tut es aber nicht.
Kann sich jemand vorstellen warum? Denke ich einfach nur falsch?
mfg Marcel
Jetzt dachte ich wenn ich http://www.treffpage.de/index.php?page=gbook&seite=5 zum blättern verwende müsste es wieder gehen. tut es aber nicht.
So müsste es eigentlich gehen, deshalb kann man den fehler nur im code direkt finden!
welche seite wird denn angezeigt immer die 1.? oder garnix? beschrieb mal genauer oder poste mal den code.
Frank_
Hi Marcel,
ich hab grad was ähnliches gebaut, allerdings include ich je nach Parameter diverse extra-Dateien. Denn: Eine RIESEN Seite wird unübersichtlich.
Solange das bei 3-5 bis 10 Seiten bleibt geht das. Aber wenn Du dann noch auf Benutzereingaben reagieren möchtest, Fehlermeldungen ausgeben willst und so weiter wird das schnell sehr sehr lange. Und dann bekommst Du ne Fehlermeldung on Line 5103.
Viel Spass dann beim suchen....
Ich habs so gelöst:
if (site=="gb")inlude ("http://".$_SERVER["HTTP_HOST"]."/gaestebuch.php");
oder mit ner select case Anweisung bei mehr Seiten. Dann habe ich mein Layout in Templates extern gespeichert und diese include ich ebenfalls.
In der Datei Gästebuch verwalte ich dann alles, was mit dem GB zu tun hat: Neueintrag, alte Einträge, Archiv, wieviele Einträge angezeigt werden sollen, "Blätterfunktion", Suche usw.... Für mich ist das überschaubarer, da mein web reletiv umfangreich ist.
Greets Tom1tk
Hello,
ich habe bisher eine Seite, die aus vielen verschiedenen PHP-Dateien besteht. Jetzt bin ich auf die Idee gekommen (oder besser: Ich hab gesehen, dass andere Seiten das so machen) alle Seiten aus einer Indexdatei heraus zu starten.
<a href="index.php?page=home">Home</a>
<a href="index.php?page=gb">Gästebuch</a>
<a href="index.php?page=forum">Forum</a>index.php:
<?
$pagedir = "/www/domain/pages/"; # als Beispiel
# $docroot = "/www/domain/docs/"; # nur als Bsp. zur Lage von $pagedir
$ext =".php";
if (isset($_GET["page"]))
$page = $_GET["page"] . ".php";
$_parts = pathinfo($_GET["page"]);
$page = $pagedir.basedir($_parts["basedir"],".".$_parts["extension"]).$ext;
Sonst kann man den ganzen Server nach *.php-Dateien absuchen
else
$page = "home.php";if (!file_exists($page))
$page = "home.php"include ($page);
?>##############
Was haltet ihr davon?
Abgesehen davon, dass das der Anfang einer netten Studie über Include, Sicherheit und ModRewrite werden könnte halte ich gar nichts davon. Es ist für statische Seiten meistens unsinnig, sie derartig bereitzustellen. Einziger Vorteil: man kann über Sessions auch den Aufruf von Einzelframes vermeiden.
Suchmaschinen mögen derartig referenzierte Seiten nicht gerne freiwillig aufnehmen. Man schießt sich damit also ein Eigentor.
Das Ganze lohnt sich mMn nach nur, wenn man die Seiten dynamisch aus einer DB erzeugt, vorzugsweise bei Communities und Portalen. Das hat aber auch nur Sinn, wenn die Elemente einer Seite klassifiziert sind und man z.B. automatisch dafür sorgt, dass ein Termin nicht nur auf der eigentlichen Veröffentlichungsseite erscheint sondern auch in der allgemeinen Terminliste oder das Produkt-Angebot eines Teilnehmers automatisch in der gemeinsamen Liste der Angebote steht usw...
Auch unterschiedliche Zugriffsrechte für die (verstreuten) Seiten des Webangebotes lassen sich damit regeln.
Liebe Grüße aus http://www.braunschweig.de
Tom