unterseiten in php

hallo, ich habe gehört, dass es möglich ist, mehrere seiten in einer zu kombinieren, ohne weitere php dateien... klartext...

ich möchte beispielsweise
index.php
index.php?go=01
index.php?go=02
index.php?go=03
u.s.w.

erstellen, aber weiß nicht wie :( kann wer mir helfen?

ich habe geschraubt folgendes...

PHP:
<?php
if(isset($_REQUEST["go"]) && $_REQUEST["go"] == "01")
{
echo "Echo 1";
}
elseif(isset($_REQUEST["go"]) && $_REQUEST["go"] == "02")
{
echo "Echo 2";
}
elseif(isset($_REQUEST["go"]) && $_REQUEST["go"] == "03")
{
echo "Echo 3";
}
else{
echo "<a href=\"?go=01\">01</a> | <a href=\"?go=02\">02</a> | <a href=\"?go=03\">03</a>";
}
?>

aber da ich nen include rein basteln möchte, der einige grund informationen beinhaltet, stellt die seite auf stur und bleibt weiß :(
 
an sich ist dein ansatz schon möglich, warum das mit nem include nicht funktionieren sollte keine ahnung.
vielleicht für da ein

Code:
error_reporting(E_ALL);

helfen.
ansonsten musst du mit den include aufpassen, validiere auf jeden fall die eingaben vom benutzer und fang nicht an sowas hier zu nutzen!

Code:
$site = $_GET["what"];
include $site;

sicherheitstechnich nicht sehr gut.

ich selbst würde wenn überhaupt sowas mit ner switch anweisung bearbeiten

Code:
$site = (isset($_GET["what"])) ? $_GET["what"] : "start";
switch($site) {
  case 'site1': [....]; break;
  case 'site2': [....]; break;
  case 'site3': [....]; break;
  case 'site4': [....]; break;
  default: standardseite(); break;
}

damit hast du halt den fall abgedeckt, dass du eine standardseite hast (start) wenn du keine eingabe bekommst und für alle nicht vorhandenen seiten auf die default anweisung springst.

das
Code:
$site = (isset($_GET["what"])) ? $site : "start";

ist ne kurzform für

Code:
if (isset($_GET["what"])) {
  $site = $_GET["what"];
 } else {
  $site = "start";
}

wenn du das noch etwas komplexer haben willst, such hier im forum mal nach frontcontroller, basicavid hat da mal nen sehr gutes tut dazu geschrieben!
 
Hi,

ich kenne mich mit PHP nicht sehr gut aus, kann das include scripttechnisch (also vom aufwand her) sehr empfehlen.

Habe früher auch mal eine Homepage über diesen Weg gestaltet.
 
gegen das include spricht ja auch nichts, nur sollte man genau beachten, was da an variablen übergeben werden kann.

prinzipiell gilt, usereingabe BÖSE!
da erstellt man keine blackliste, sondern eine whitelist für valide eingaben!
 
und man wirft vor der verarbeitung generell schonmal alle <, >, ' und " raus ;). / wäre auch nicht verkehrt.
 
is das include nun gut oder eher nicht so gut? ich weiß das include heufig verwendet wird wenn allgemeine configurationen auf der HP (beispielsweise mysql und sowas) vorgenommen wird oder der gleichen...
 
ich seh da erstmal nichts verwerfliches dran. früher hab ich das ständig in etwa dieser form verwendet:

Code:
<?php
    $action=$_GET['action'];
    if(!(isset($action))) {
        $action="startseite.php";
    }
    $invalide = array('/','/\/',':','<','>','index.php');
    $action = str_replace($invalide,' ',$action);
    include($action);
?>
 
Mal eine Frage von mir dazu:

Gibt es in dieser Weise, die Seite zu konstruieren spezielle Vorteile oder ist das schöner zu pflegen? Ich habe festgestellt, dass es einige Seiten gibt, die so konstruiert werden, aber sehe da bisher keine Vorteile drin.
 
man kann z.B. alle Seiten, die includet werden dürfen, in ein Array speichern
PHP:
<?
$menu=array(
"home"=>"Startseite",
"blub"=>"Blub"
);
?>

und somit wunderbar ein Navigationsmenü generieren kann, wo man gleich die aktuell aufgerufene Seite per CSS hervorheben kann etc.
(natürlich immer vorrausgesetzt, dass man, wie schon oben erwähnt, die nötigen Sicherheitsabfragen macht, damit daraus nicht auf einmal ne RFI oder LFI Lücke wird...)

also für Seiten, wo von Anfang an fest steht, was ungefähr rein soll und die relativ wenig verändert werden sollen (sodass kein CMS von Nöten ist), mach ich das auch so...
 
Okay, ich denke, ich verstehe den Ansatz jetzt besser, gerade durch den Hinweis, dass das für Seiten geeignet ist, die sich nicht mehr groß verändern werden.
 
Zurück
Oben