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
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
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
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

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
IT Corporation
Wieso soll man das denn jezt verschlüsseln?
ENTE
die funktion md5() verschlüsselt den ganzen Käse