seite per ?action=test einbinden?

psprofi
Hallo

Ist es möglich, wenn ich eine seite aufrufe zb mit

test.php?action=test

das eine seite aus einem unterforum per include(oder sonstwie eingebunden wird?
Dizzy.w3
Hi,

code:
1:
<a href="index.php?action=home" />


index.php
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<?php
switch ($action) {
    case 'home':
        $headline 'Kopfzeile';
        $content 'Inhalte ...';
        break;
    
    case 'other':
        $headline 'Wieder Kopf ...';
        $content 'Auch Inhalte, aber andere';
        break;

    case default:
        $headline 'Standard Kopf';
        $content 'Standard Inhalt';
        break;
}
?>


Mit
php:
1:
include()
kannste Unterseiten includen ... jop.

http://php.net
http://google.at

Gruß
Dizzy
psprofi
und wie kann ich beides verbinden?

also include() in deinem index.php Beispiel?
seb
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<?php
    $action $_GET['action'];

    switch ($action){

        case home:
            include('home.php');
            break;
        
        case xyz:
            include('xyz.php');
            break;

        default:
            include('home.php');
            break;
    }
?>
psprofi
Es funktioniert.


DANKE!!!
[kamui]
Ihr mit eurem switch ... if ftw fröhlich
Maniac_81
in nem array geht das viel eleganter:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
if(isset($_GET['action']) AND isset($dateien[$_GET['action']])) {
        include $dateien[$_GET['action']];
    } else {
        include $dateien['home'];
    }

# zb:
$dateien = array(); // <--ein Leeres Array erzeugen
    $dateien['home'] = "start.php";
    $dateien['satzung'] = "satzung.php";
    $dateien['admin'] = "admin.php";
    $dateien['logout'] = "logout.php";
seb
ja nee is klar, dass das auch funktioniert, aber für einen anfänger ist die if oder switch anweisung einfacher zu verstehen.
[kamui]
Wenn Array, dann verschlüssel ich ihn meistens md5 Augenzwinkern

So geht es auch:
php:
1:
2:
3:
4:
<?php
$action $_GET['action'] ? $_GET['action'] : "home";
if (file_exists("./".$action.".php")) include "./".$action.".php";
?>
seb
warum verschlüsseln? das ist doch unlogisch. oder.....
[kamui]
Wieso? Wenn wir Maniac_81's Code nehmen ginge das wie folgt:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
if(isset($_GET['action']) AND isset($dateien[$_GET['action']])) {
  include $dateien[$_GET['action']];
} else {
  include $dateien['home'];
}

# zb:
$dateien = array(); // <--ein Leeres Array erzeugen
    $dateien[md5('home')] = "start.php";
    $dateien[md5('satzung')] = "satzung.php";
    $dateien[md5('admin')] = "admin.php";
    $dateien[md5('logout')] = "logout.php";


Das hat den Vorteil, dass die Leute weniger mit der URI spielen
nrj
Ich machte das bisher immer so:

php:
1:
2:
3:
4:
5:
6:
<? 
if(file_exists($_GET["action"].".php")){include($_GET["action"].".php");
} else {
include 'news.php';
} 
?>


Ist doch viel einfacher?

MfG
[kamui]
@nrj:
Und wenn ich bei ?action folgendes angebe " http://www.meineseite.de/boeseskript_das...server_zerstört ", dann wird mein böses Skript geladen und zerstört deinen Server Augenzwinkern Daher solltest du for dem $_GET... im include & file_exists jeweils ein "./" tippen, damit nur aus deinem Ordner/Webspace geladen werden kann.
Maniac_81
wird das bei meiner methode auch funktionieren mit einem bösen-script?
wenn ich es sow wie du oben mit md5 verschlüssele, dann bekomm ich nen fehler angezeigt. muss ich da noch was bei der ausgabe machen?
[kamui]
Also nach deiner Methode, Maniac, kann meines Wissens nichts passieren.

Der md5-Code muss wie folgt heißen (hatte mich vertippt):
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
if (isSet($_GET['action'])) $action $_GET['action'];
else $action "home";

$action md5($action);

include $dateien[$action];

# zb:
$dateien = array(); // <--ein Leeres Array erzeugen
    $dateien[md5('home')] = "start.php";
    $dateien[md5('satzung')] = "satzung.php";
    $dateien[md5('admin')] = "admin.php";
    $dateien[md5('logout')] = "logout.php";
seb
ja warum macht man es nicht so

code:
1:
index.php?section=1234abcd


und 1234abcd ist der md5 verschlüsselte ort
[kamui]
So ist es doch in meinem letzten Code Augenzwinkern
IT Corporation
Wieso soll man das denn jezt verschlüsseln?
ENTE
die funktion md5() verschlüsselt den ganzen Käse