Archiv verlassen und diese Seite im Standarddesign anzeigen : Wahrscheinlich leichte Frage...?
davinci
14.11.2005, 15:00:22
Hallo,
ich habe auf euner Seite folgenden code in eine Tabellenzelle eingefügt:
<?php include( $_GET[ 'zeige' ] ); ?>
Wenn ich nun in meiner Navigation z.B. den Befehl xyz.php?zeige=test.php gebe funktioniert es super (auch mit der restlichen Navigation: xyz.php?zeige=test.php2,...) und ich bekomme die test.php an diese Stelle geladen.
Alles gut, aber mein eigentliches Problem ist folgendes:
Wenn jemand die Domain aufruft z.B. www.keineahnung.de dann weiß die variable "zeige" ja nicht was sie laden soll. Wie kann ich da als Grundlage eine Seite definieren und nacher trotzdem noch die Variable "zeige" benutzen ???
War das zu verstehen ? Ode zu kompliziert erklärt ?
Ich denke ein Profi kann mir leicht helfen...
Danke schonmal
StefanL
14.11.2005, 15:29:37
Baue mal folgendes vor deinem Code ein:
if(!$_GET['zeige']) {
$zeige = "test.php";
}
|Coding
14.11.2005, 15:35:30
Das was Du da machst ist einfach gesagt "geisteskrank".
Wenn jemand Deine Seite mit dem Query "?zeige=http://meinedomain.de/boeses_script.php" auf ruft, dann kann es sein, dass dein Webspace anschließend leer ist!
Gesünder ist es, wenn Du das Ganze über ein switch (http://www.selfphp.de/funktionsreferenz/kontroll_mechanismen/switch.php)() löst. Denn so oder mittels anderer Wege kannst Du solche Sicherheitslücken schließen.
StefanL
14.11.2005, 15:42:35
öhm, Verständnisfrage:
mit dem switch wird doch auch nur abgefragt, was mit $zeige bzw. $_GET['zeige'] über die URL übermittelt wird, oder?
Also macht es doch keinen Unterschied, ob ich es mit if oder mit switch abfrage, weil ich doch in beiden Fällen der Bedingung etwas unterjubeln kann, oder liege ich völlig verkehrt.
Ich hatte bis jetzt nie das Problem, dass ich mich mit der Frage auseinandersetzen musste, da alles was ich bis jetzt gemacht habe nur im Intranet steht.
davinci
14.11.2005, 15:45:05
Und wie (wo) baue ich das ein ?
So sieht die komplette Tabellenzelle aus:
<td width="672" align="left" valign="top"><?php include( $_GET[ 'zeige' ] ); ?></td>
Sorry, aber bin bin froh daß ich das schon hinbekommen habe, ich bin Newbie !
Danke
|Coding
14.11.2005, 15:54:04
Ein Beispiel zum Verständnis:
<?PHP
switch($_GET['zeige']){
default:
case 1:
$seite = 'seite1.php';
break;
case 2:
$seite = 'seite2.php';
break;
case 3:
$seite = 'seite3.php';
break;
}
include($seite);
?>
Beispiele:
http://meinedomain.de/script.php
Hier greift das switch am punkt "default:"
http://meinedomain.de/script.php?zeige=1
Hier greift das switch am punkt "case 1:"
http://meinedomain.de/script.php?zeige=2
Hier greift das switch am punkt "case 2:"
http://meinedomain.de/script.php?zeige=3
Hier greift das switch am punkt "case 3:"
http://meinedomain.de/script.php?zeige=4
Hier greift das switch wieder am punkt "default:", weil für zeige=4 kein "case" deklariert wurde.
StefanL
14.11.2005, 15:57:30
Danke |Coding !
Jetzt habe ich gerafft, was gemeint war.
Also es ist auf jeden Fall sicherer nicht den Namen des Scripts per URL zu über geben, sondern einen Wert und diesen per switch den Scripten zuzuordnen.
@davinci
Baue einfach das, was |Coding geschrieben hat ganz oben in dein Script ein, aber vergiss nicht diesen Teil in <?php und ?> einzuschließen.
davinci
14.11.2005, 16:17:36
Hervorragend !
Das funktioniert echt gut. Man lernt nie aus...
jetzt funktioniert das ja wie bei den "Profi's" ;-)
Danke an Euch beide !
davinci
21.11.2005, 13:15:54
Jetzt habe ich noch eine Frage:
Kann ich eigentlich die Seiten auch in einer config Datei (welche in die Index.php eingebunden wird) definieren ?
Dann muß ich doch bestimmt den Code so ändern oder ?
Original:
<?PHP
switch($_GET['zeige']){
default:
case 1:
$seite = 'seite1.php';
break;
case 2:
$seite = 'seite2.php';
break;
case 3:
$seite = 'seite3.php';
break;
}
include($seite);
?>
geändert:
<?PHP
switch($_GET['zeige']){
default:
case 1:
$seite = '$page1';
break;
case 2:
$seite = '$page2';
break;
case 3:
$seite = '$page3';
break;
}
include($seite);
?>
Wenn ich dann in der z.B. config.php die Seiten mit $page1=seite1.php definiere, geht das dann ? Oder muss ich da noch was extra beachten ?
davinci
vBulletin® v3.8.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.