Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie ist PHP - Seite aufgebaut?
Limbi
09.07.2002, 14:37:45
Hallo! Ich wollte nur fragen, wie eine PHP - Homepage eigentlich aufgebaut ist. Mit PHP habe ich jetzt schon recht viel Erfahrung, aber ich komme noch nicht ganz nach, wie eine PHP Seite aufgebaut ist.
Zum Beispiel hat eine Homepage als Link:
index.php?section=news
index.php?section=files
Wie muss dann der Skript auf der index.php aufgebaut sein? Gibt es da irgend ein Typpischer Skript?
Danke
Progman
09.07.2002, 15:26:19
Die Seite besteht einmal aus einer blinden Tabelle um Menus, Polls, Banner usw. zu plazieren. Und da wo du deine news oder die memberliste haben möchtest packst du folgenden code rein.
if(isset($_GET['section']))
{ // <- achtung, bug in diesem Forum
switch($_GET['section'])
{ // <- bug
case 'members':
include('members.php');
break 1; // wichtige zeile
case 'clanwars':
include('clanwars.php');
break 1; //wichtige zeile
...
case 'news':
default:
include('news.php');
break 1; // wichtige zeile
}
}
else
{ // <- achtung, bug in diesem Forum
include('news.php');
}
http://de.php.net/include
http://de.php.net/switch
http://de.php.net/isset
http://de.php.net/manual/de/language.variables.predefined.php#language.variables.predefined.php
es gibt auch andere möglichkeiten wie
include($_GET['section']); ist aber nicht zu empfehlen, da der surfer dann
index.php?section=/etc/passwd oder
index.php?section=/etc/apache.conf öffnen kann (als beispiel)
allerdings gibt es eine einfachere möglichkeit, anstelle dieses switches, das beliebig erweiterbar ist.
ich tipps jetzt aus dem kopf, erwarte nicht, dass es funktioniert!
$page=$_GET["page"];
if(stristr("/",$page) ) $page="hauptseite";
print "Das ist die kopfzeile der seite!";
if(!@require("pages/".$page.".php")) require("pages/404notfound.php");
print "das ist die letzte zeile";
jetzt haust du den content ins pages verzeichnis, und je nachdem welche seite du aufrufst gibst du ne andere page an. füg die extention nicht hinzu.
Auf diese weise kann der typ nämlich nur noch php dateien in dem pages verzeichnis ansehen und die darf er sich sowieso anschaun!
Das zweite if öffnet eine standardseite (die du natürlich selbst schreiben musst) die da eingebunden wird, wenn die datei nicht hinzugefügt werden konnte. das @ unterdrückt eine Fehlermeldung.
Limbi
09.07.2002, 17:53:45
Achsoo. Jo ich denke sowas wäre auch für meine HP nicht schlecht. Da spart man sich viel Zeit!
Danke!!!
ihr habt das aber ziemlich kompliziert gelöst
<?
include ($display .".htm");
?>
na und dann werden die seiten eben bspw. index.php?display=news bspw. aufgrerufen in dem einfach die news.htm included wird!
Hi hide
dann hast du das Problem, wenn du keinen Parameter angibst bzw. wenn du einen falschen mitlieferst.
Das Beispiel von Matt ist vollkommen korrect und liefert die gewünschte funktionalität.
wobei ich es ned ganz so gemacht hätte:
$page=$_GET["page"]; // Holt die Variable
$main_page = "hauptseite"; // Definiert die Main-Page
if(stristr($page, " ")) // Wenn Page Leerzeichen enthält
$page=$main_page; // dann wird die Main-Page gerufen
print "Kopf!"; // Kopfzeile für jede Page
if(!@require("pages/".$page.".php")) // Wenn die Seite nicht vorhanden ist
{ // dann
require("pages/404notfound.php"); // Error-Meldung einfügen
require("pages/".$main_page); // Main Page darunter
}
print "Fuss!"; // Fusszeile für jede Page
wieso fragst du das leerzeichen in der URL ab? Für mich ergibt das keinen sinn. (zumindest nicht auf diese weise!)
doudie
13.07.2002, 03:28:04
Ich mache es so:
<?
// 1. Standartd-Aufruf (= Start-Seite)
if ($id == "")
{
$id = "start";
}
// 2. Variablen definieren
$mainmenue " "menue_main.php";
$untermenue = "menue_".$id.".php";
// 3. Hauptmenue Aufruf (= bleibt immer da)
include("$mainmenue");
// 4. Untermenue Aufruf (= je nach id - Aufruf)
include("$untermenue");
?>
Wichtig dabei ist, dass für jede ID eine "Untermenü-Datei" existiert, also z.B: menue_start.php und menue_01.php und menue_02.php und ...etc...
und dass im Hauptmenü z.B. der Link zu dem Untermenue mit der ID 01 so aussieht:
index.php?id=01
oder dann auch index.php?id=kategorie oder sonst was als id
der Link HOME bzw Startseite sieht dann so aus:
index.php?id=start
.... ich hoffe das hat jetzt jemand kapiert ...?!...
CyberAge
14.07.2002, 00:25:49
Original geschrieben von Nev
$page=$_GET["page"]; // Holt die Variable
$main_page = "hauptseite"; // Definiert die Main-Page
if(stristr($page, " ")) // Wenn Page Leerzeichen enthält
$page=$main_page; // dann wird die Main-Page gerufen
print "Kopf!"; // Kopfzeile für jede Page
if(!@require("pages/".$page.".php")) // Wenn die Seite nicht vorhanden ist
{ // dann
require("pages/404notfound.php"); // Error-Meldung einfügen
require("pages/".$main_page); // Main Page darunter
}
print "Fuss!"; // Fusszeile für jede Page
und wo wird hier $page eingebaut? entweder ich bin blind, oder es fehlt wirklich das include!
|Coding
14.07.2002, 02:42:02
suchst du das CyberAge?
$page = $main_page;
require("pages/".$main_page);
CyberAge
14.07.2002, 02:56:38
nö, schau doch mal:
$page=$_GET["page"];
$main_page = "hauptseite";
if(stristr($page, " "))
$page=$main_page;
print "Kopf!";
if(!@require("pages/".$page.".php"))
{
require("pages/404notfound.php");
require("pages/".$main_page);
}
print "Fuss!";
es wird doch nur überprüft, ob "pages/".$page.".php" exisitiert, aber nicht eingefügt, oder wird das in der if-anfrage gemacht? wenn nicht, dann würde ja die fehlerseite und die $main_page geladen, aber nicht wie übergeben $page. meiner meinung nach müßte der code so aussehen:
$page=$_GET["page"];
$main_page = "hauptseite";
if(stristr($page, " "))
$page=$main_page;
print "Kopf!";
if(!@require("pages/".$page.".php"))
{
require("pages/404notfound.php");
require("pages/".$main_page);
} else {
require("pages/".$page.".php");
}
print "Fuss!";
vBulletin® v3.8.3, Copyright ©2000-2012, Jelsoft Enterprises Ltd.