[PHP] index.php?page=blabla
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beitrag
blabla
break
datei
definition
error
extra
fehler
fragen
funktion
gren
inhalt
irgendetwas
lade
member
page
sidebar
switch
variable
zeile
-
Hallo, da ich mich nicht so gut mit PHP auskenne, frage ich mal hier bei Lima-City!
Also, ich habe eine Datei namens index.php . Den Inhalt füge ich mit
ein. Es sind allerdeings mehrere Includes, also navi, blabla, usw.include ("blabla") ;
Nun hab ich mir überlegt, da es ja eine recht komplexe Webseite ist, dass die Links nur noch so ungefähr aussehen sollen: index.php?page=blabla
Wie kann ich so etwas realisieren? Kann ich dort weiterhin die Include Funktion verwenden, oder muss ich einen anderen Befelh nehmen?
Grüße Moritz -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du willst den Inhalt mit includes lösen?
Hab ich das jetzt richtig verstanden?
-->http://designnation.de
-->http://tut.php-q.net
-->http://google.de ("includes" sollte schon reichen) -
Ja, so hatte ich das ursprünglich gemacht. Jetzt will ich aber, dass man es mit index.php?page=blabla aufrufen kann. Ist das möglich?
-
Hallo moritzpeuser,
naklar ist das möglich.
Du musst die Variable per $_GET[''] übernehmen. Dann erstellst du if-abfragen in der Art: wenn $page gleich blabla ist dann includiere das und das...
also:
$page = $_GET['page'];
if($page == "blabla") include("blabla.php");
if($page == "muh") include("kuh.php");
[...]
gruß
ferdinand24 -
*hust*
http://www.lima-city.de/tutorials.php?mode=show&id=1275 -
Danke, aber irgendwie bin ich zu blöd um das zu kapieren. Ich habe jetzt mal schnell folgenden Code als Beispiel zusammengeschustert:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Sir Edwin - Die Community </title> <style type="text/css" media="screen"> <!-- @import url(http://moritzpeuser.lima-city.de/style.css); @import url(http://morizpeuser.lima-city.de/default.css); #body { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/images/wallpaper5.jpg') top center fixed; } #wallpaper0 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper5.jpg') center; } #wallpaper1 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/tile1.jpg') center; } #wallpaper2 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper3.jpg') center; } #wallpaper3 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper6.jpg') center; } #wallpaper4 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper1.jpg') center; } #wallpaper5 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper2.jpg') center; } #wallpaper6 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/tile2.jpg') center; } #wallpaper7 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper7.jpg') center; } #wallpaper8 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/tile3.jpg') center; } #wallpaper9 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/tile4.jpg') center; } #wallpaper10 { background: url('http://themes.wordpress.net/testrun/wp-content/themes/701/wallpapers/wallpaper4.jpg') center; } --> </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="Sir Edwin - Die Community" /> </script> <style type="text/css" media="screen"> #fmoblog_side{ } #fmoblog{ margin-top:10px; } #fmoblog_side img, #fmoblog img{ border:1px #ccc solid; padding:1px; margin:1px; background-color:#fff; } #fmoblog_photodate { height:50px; float:left; } #fmoblog_photolist { float: right; margin: 0; margin-left: 0; padding: 0; } #fmoblog a, #fmoblog a:visited, #fmoblog a:hover, #fmoblog a:focus { border:none; text-decoration:none; background-color:transparent; } #fmoblog_error{ background-color:#FF0000; border:3px #000000 solid; } </style> </head> <body id="body"> <div id="bodyowner"><div id="menucontainer"> <div class="menubefore"></div> <div class="menu"> <h3>Extras</h3> <p><?php inlcude ("extra.html") ; ?></p> <p class="clear"></p> </div> <div class="menuafter"></div> <div class="menubefore"></div> <div class="menu"><?php inlcude ("navi.html") ; ?></div> <div class="menuafter"></div> </div> <div id="contentcontainer"> <div class="blogbefore"></div> <div class="blog"><div style="overflow: hidden;"> <span class="menu"> <?php inlcude ("start.html") ; ?> </span></div> </div> <div class="blogafter"></div> </div> </div> <script type="text/javascript">init();</script> </body> </html>
Kann mir das jemand vorkauen? *ganzliebkuck* -
[Kauen beginnen]
in der Zeile wo <?php inlcude ('start.html') ; ?> steht,
ersetzt du es durch:
<?php
if(empty($_GET['seite'])) {
include "start.html";
}
elseif($_GET['seite']=="blabla") {
include "blabla.html";
}
elseif($_GET['seite']=="undsoweiter") {
include"irgendetwas.html";
}
else {
echo"Die von ihnen aufgerufene Addresse existiert nicht.";
}
?>
Also, zuerst wird mit
if(empty($_GET['seite']))
überprüft, ob 'seite' leer ist.
Wenn dies zutrifft, dann wird
include "start.html";
ausgeführt.
elseif($_GET['seite']=="blabla")
überprüft ob seite blabla ist. (Groß und kleinschreibung wird ignoriert.)
Wenn ja, dann wird
include"blabla.html";
ausgeführt.
Das zweite elseif kannst du dir denken (siehe oben...)
Dies kannst du so oft kopieren wie du willst.
Wichtig ist, dass das elseif() vor dem else steht.
Das else {} sagt, was passieren soll, wenn keine abfrage zutrifft, also eine Seite aufgerufen wurde, die nicht angelegt wurde.
also: echo"Die von ihnen aufgerufene Addresse existiert nicht.";
[Gekautes ausspucken üb auf Silbertablett überreichen]
Hoffe ich konnte helfen.
Beitrag geändert: 17.11.2006 23:21:59 von speedtouch92 -
Ich empfehle dringenst für soetwas Switches zu verwenden.
Sie fressen weniger Resourcen, sind eleganter und komfortabler.
switch($_GET['page']) { default: include("start.php"); break; case 'gb': include("gb.php"); break; }
uswuswusw
Switches sind wirklich besser geeignet für soetwas.
Grüße, adrians -
mmmh..*anfang zu grübeln*
Soweit ich weiß finde ich nur den einen Fehler aber der is ja inzwischen auch behoben. Ach noch was, schreibt man bei php in den ersten Zeilen HTML? -
Wow, vielen Dank für eure Hilfe. Mal sehen, ob ich jetzt zu einem vernüftigen Resultat komme...
-
Mh, dann musste für jede Seite ein Case reinmachen, was umständlich wäre.
Mein Vorschlag:
$page = $_GET["page"]; if (file_exists($page.".php")) { include($page.".php"); } else { echo "ERROR404: Die Seite existiert nicht"; }
Beitrag geändert: 18.11.2006 12:05:04 von trueweb -
Oder du speicherst die einzelnen Seiten in einem Array (2 Dateien):
<?php //inhalt.php include('links.php'); if(isset($_GET['p']) AND isset($dateien[$_GET['p']])) { //Ist eine $_GET Variable vorhanden wird PHP angewiesen //zu prüfen ob die Datei existiert und diese dann zu laden if(!file_exists($dateien[$_GET['p']])) echo "Die Datei ist nicht vorhanden."; include $dateien[$_GET['p']]; } else { //Wenn keine Variable oder Definition vorhanden ist //lade die Fehlerseite bzw. die Indexseite include $dateien['home']; } ?>
und in die links.php:
<?php //links.php $dateien = array(); //Erstellt einen neuen Array $dateien $dateien['home'] = "home.php"; //Home $dateien['news'] = "newssys/index.php"; //News $dateien['forum'] = "forum/index.php"; //Forum ?>
Einfach immer die Links.php anpassen.
l sebi -
Ich würde dir sie Methode von skate-4fun empfehlen,
da diese sehr kurz und bündig ist.
Und leicht anzupassen. -
Da ist meine aber leichter anzupassen, vor allem da man nichts mehr anpassen muss ;)
$page = $_GET['page'];
if (empty($page)) { $page = "startseite"; }
if (file_exists($page.'.php'))
{
include($page.'.php');
}
else
{
echo 'ERROR404: Die Seite existiert nicht';
}?> -
So, jetzt hab ich hier nochmal eine Frage:
Ich habe diesen Code, um den Content zu Includen:
$page = $_GET['page']; if (file_exists($page.'.php')) { include($page.'.php'); } else { include '404.php'; }
Nun möchte ich aber noch eine andere Datei namens sidebar.test.php includen:
$page = $_GET['page']; if (file_exists('sidebar.'$page.'.php')) { include('sidebar.'$page.'.php'); } else { include 'sidebar.404.php'; }
Allerdings kommt immer die Fehlermeldung: Parse error: syntax error, unexpected T_VARIABLE in /home/webpages/lima-city/moritzpeuser/html/moritzpeuser/index_beta.php on line 63
Zeile 63 ist die erste Zeile im zweiten Codeabschnitt !
Was mache ich falsch?
Beitrag geaendert: 3.2.2007 13:50:12 von moritzpeuser -
mach mal ein leerzeichen zwischen <? und $page
-
korbiw schrieb:
mach mal ein leerzeichen zwischen <? und $page
Außerdem fehlt da noch ein Punkt:
<?
$page = $_GET['page'];
if (file_exists('sidebar.'$page.'.php')) {
include('sidebar.'.$page.'.php');
} else {
include 'sidebar.404.php';
}
?> -
Stimmt. Hab ich ganz übersehen. Danke nochmals :)
-
Ich würde es so machen:
<?php if(isset($_GET['page'])) { switch($_GET['page']) { case "members": include "members.php"; break; case "clanwars": include "clanwars.php"; break; default: // Wenn page etwas liefert, was es nicht gibt zB //index.php?page=claaaanwaar, dann wird News angezeigt include "news.php"; break; } } else { // wenn page nicht angegeben wurde // sollen die News angezeigt werden. include "news.php"; } ?>
Beitrag geaendert: 4.2.2007 20:30:49 von sesch
Beitrag geaendert: 4.2.2007 20:31:18 von sesch -
mmmh..*anfang zu grübeln*
Soweit ich weiß finde ich nur den einen Fehler aber der is ja inzwischen auch behoben. Ach noch was, schreibt man bei php in den ersten Zeilen HTML?
Ja, das macht man,
du definierst ja nur den Dokumenteninhalt serverseitig über eine kriptsprache.
Um das ganze Standartkonform und somit für den Browser verwertbar zu machen, musst du nach wie vor den HTML teil deiner Seite auf irgendeine weise ausgeben. Dabei ist es dir natürlich freigestellt ob du das ganze als PHP Skript inerhalb eines HTML dokuments einbindest oder ob du das als PHP Funktion ausgiebst. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage