verständnis frage zu ?page=start
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
action
alternativ
bedingung
beispiel
break
datei
durchhnger
fragen
gstebuch
inhalt
kleines beispiel
kramen
mache
mglicherweise
page
scherzen
schleifen
startseite
tutorial
variable
-
ich habe mir hier (und auch auf anderen seite) das tutorial zu dieser art (?page=start) durchgelesen..aber irgendwie hab ich mal wieder einen durchhänger..und hab jetzt eine frage dazu..
das soll ja so aussehen:
<?php
if(!isset($_GET['action'])) { //wenn die variable action in der url nichts gesetzt ist, wird $action auf start
$action = 'start'; gesetzt
} else { // andernfalls wird der inhalt von $_GET['action'] $action zugewiesen
$action = $_GET['action'];
}
// so jetzt ist die variable $action auf jeden fall gesetzt, entweder mit start oder mit dem inhalt $_GET['action'], also das was in der url steht
switch($action) {
case 'start': // wenn $action = start dann die startseite includen
include('start.php');
break; // die switch schleife abbrechen
case 'gb': // wenn $action = gb dann das Gästebuch includen
include('gb.php');
break;
/* usw.
case 'der_wert_von_$action':
include('welche seite soll includet werden?');
break;
*/
} // das } darf nich vergessen werden!
wenn ich aber jetzt zum beispiel zu der seite seite "gb" verlinken will, muss ich das dann so schreiben: <a href="gb.php">Test</a> ?
und wo muss der obenstehende php teil mit rein? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
<a href="nameDerSeiteMitDenIncludes.php?page=gb">
Denn, wenn $action == "gb", dann wird ja gb.php included.
Ganz einfach ;) -
ah ok dann bin ich jetz ma wieder ein wenig schlauer ;)
danke -
Außerdem würde ich nicht mit einer Case-Bedingung arbeiten:
<?php
$page = $action . ".php"
if(file_exists($page))
{
include ($page);
}
else{
echo "Seite nicht verfügbar!";
}
?>
So mache ichs, da kann man sich den ganzen Kram ersparen, alles einzeln zu machen.
Alternativ kannst du natürlich auch den else-Zweig durch include("FehlerSeite.html"); o.ä. erstzen.
Mfg
addlebrainy -
Außerdem würde ich nicht mit einer Case-Bedingung arbeiten:
<?php
$page = $action . ".php"
if(file_exists($page))
{
include ($page);
}
else{
echo "Seite nicht verfügbar!";
}
?>
So mache ichs, da kann man sich den ganzen Kram ersparen, alles einzeln zu machen.
Alternativ kannst du natürlich auch den else-Zweig durch include("FehlerSeite.html"); o.ä. erstzen.
Mfg
addlebrainy
Ja, aber so kann jeder über dein include beliebige Dateien ausführen lassen, die möglicherweise schädlichen Code beinhalten. Die Datei kann auf einem ganz anderen Server liegen (grade wenn allow_url_fopen aktiviert ist) und sobald sie existiert, wird sie ausgeführt. Mit switch{} geht man sicher, dass nur die gewünschten Dateien ausgeführt werden, auch wenn der code dadurch ein wenig länger wird.
Kurzum: switch ist sicherer. -
Dann deaktiviert man allow_url_fopen eben und sorgt dafür, dass auf dem eigenen Server nur "sichere" Scripts liegen :D
Nein, Scherz beiseite, wie wärs damit:
<?php
[..Code..]
include("content/" . $page . ".php");
[..Code..]
?>
Das andere war ja nur ein kleines Beispiel, wie man es ohne Switch-Case machen kann.
Genauso, wie man bei einem Beispiel für einen Verschlüsselungsalgo auch nicht gleich den Sichersten nimmt. Klar, an Beispielen lässt sich (fast) immer noch was verbessern.
Mfg
addlebrainy
Beitrag geaendert: 26.12.2006 9:08:21 von addlebrainedcity -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage