ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
352
352
EMPFEHLEN
-
23.09.04 06:11 #1
- Registriert seit
- Jun 2004
- Beiträge
- 6
Hallo!
Ich habe eine Seite namens index.php erstellt und folgenden Code in den Links eingefügt:
--------------------------------
<a href="./index.php?contentid=main" target="_parent">Startseite</a>
<a href="./index.php?contentid=impressum" target="_parent">Impressum</a>
--------------------------
Hier ist das div-tag, in das die zwei externen Files namens impress.php und main.php, die oben mit den Variablen "impressum" und "main" deklariert wurden, included werden sollen:
----------------------------------
<div style="width:650px; height:435px;">
<?php
if($contentid=="")
{include("./main.php");}
if($contentid=="main")
{include("./main.php");}
if($contentid=="impressum")
{include("./impress.php");}
?>
</div>
----------------------------------
Der Haken an der Sache ist, dass der Vorgang nur online funktioniert. Auf meinem lokal installierten Apache 1.3 Server hingegen wird zwar die Startseite (main) geladen, jedoch passiert beim Klick auf Impressum gar nichts, selbst, wenn ich den Link in einem neuen Fenster öffnen lasse, erscheint nur wieder die Startseite wie beim normalen Aufruf von index.php. Hat jemand eine Ahnung, was da falsch läuft!?
-
nehm doch ne switch case anweisung
switch
damit müsste es auf jeden fall gehen!Servus!
-
ach und verwende nicht
sondernPHP-Code:$contentid
PHP-Code:$_GET['contentid']
Servus!
-
23.09.04 15:29 #4
- Registriert seit
- Jun 2004
- Beiträge
- 6
Original geschrieben von kniedel
ach und verwende nicht
sondernPHP-Code:$contentid
PHP-Code:$_GET['contentid']
Ok, wo müsste ich das denn rein theoretisch in meinem Code-Beispiel einsetzen!? Sähe das so z.B. aus: $contentid=$_GET['impressum']. An welche Stelle käme das?
Im übrigen habe ich das Problem auf andere Art gelöst. Man muss in der "php.ini" den Eintrag "register_globals" auf "On" setzen. Dieser war bei mir auf "Off" gesetzt. Das erklärt wohl auch, warum es online und nicht lokal bei mir auf dem Rechner funktioniert hat. Mein Code ist soweit also in Ordnung. Wäre trotzdem schön, wenn wir das mit dem GET noch schnell lösen könnten.
-
Da hat aber einer das Prinzip noch nicht verstanden.
Wenn du register_globals auf on setzt, wird unter anderen
für jede deiner Werte, die du über www.foo.com?value=abc an deine Seite übergibst eine Variable angelegt: $value
Ist es auf off, musst du sie über $_GET["value"] ansprechen. $_GET stell also deinen Query-String dar.
Wenn in deinem Fall, die Variable $contentid bei register_globals=on verfügbar ist, wie muss man denn dann dein $_GET-Array indizieren?
Lambda - Unos, dos, tres, catorce...
-
23.09.04 17:26 #6Lukasz Tutorials.de Gastzugang
Versuche es mal so
Achtun das ./ ist ? Versuch mal ../
PHP-Code:<?php
if (file_exists("./$contentid"))
{ include ("./$contentid") }
if($contentid==FALSE)
{ include("./main.php"); }
?>
-
24.09.04 03:23 #7
- Registriert seit
- Jun 2004
- Beiträge
- 6
Tja, jetzt hat man mir gesagt, dass das mit dem register_global="On" absoluter Murks ist und lediglich schlechten Code verarbeiten soll, gar ein Sicherheitsrisiko darstellt! Was ist dran?
Hättet Ihr noch ein konkretes Beispiel speziell mit $_GET? Das wird mir von allen Seiten vorgeschlagen.
-
Register globals:On ist ein Sicherheitsrisiko, weil du nie weisst, woher eine Variable kommt.
Stell dir vor, eine login.php.....Abfrage nach Benutzername und Passwort:
Ich bräuchte nur login.php?eingelocht=blabla aufrufen.....und wäre drinnen.Code :1 2 3 4 5 6 7 8 9
if($name='richtigerName'&&$pass='richtigerPass') { $eingelocht=true; } if(isset($eingelocht)) { echo 'Wieviel Geld möchten Sie überweisen?'; }
Du wirst jetzt sagen....so einen Quatsch macht doch keiner...aber bist du sicher, dass alle deine Skripte dagegen abgesichert sind? Ich würde bei mir nicht drauf wetten
-
genau, register globals sollten lieber aus bleiben

aber nun nochmal zur erklärung:
Ein Link zum Impressum sieht dann so aus:PHP-Code:
switch ($_GET['contentid']) {
case "main": include("./main.html"); break;
case "impressum": include("./impressum.html"); break;
default: include("./main.php"); break;
}
Code :1
http://www.deineseite.de/index.php?contentid=impressum
wobei default eingesetzt wird wenn deine $_GET['contentid'] nix beinhaltet.Servus!
-
24.09.04 14:56 #10
- Registriert seit
- Jun 2004
- Beiträge
- 6
Dann mal schönen Dank an alle!
Ähnliche Themen
-
Röhrenbildschirm versagt bei Hitze?
Von timestamp im Forum HardwareAntworten: 4Letzter Beitrag: 03.07.10, 12:36 -
Navigation versagt...
Von Lyn555 im Forum Flash PlattformAntworten: 6Letzter Beitrag: 20.09.06, 20:51 -
Laptop versagt bei 3D Mark 2006
Von TimN im Forum HardwareAntworten: 2Letzter Beitrag: 27.02.06, 12:43 -
SWF in SWF - Steuerung im geladenen Film Versagt
Von Scholli2005 im Forum Flash PlattformAntworten: 3Letzter Beitrag: 11.07.05, 04:11 -
utf8_encode versagt bei " ?
Von frank manischewski im Forum PHPAntworten: 2Letzter Beitrag: 24.02.04, 22:18





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren