Register Global
Maik Peters
- php
0 Manuel B.
1 Cheatah0 Robert Bienert
Hallo Leute. Ich hab mit meiner Seite einen Serverwechsel vor. Dieser unterstützt nun nicht mehr register global off.
Ich hab erst vor kurzem mit der php-Programierung begonnen und bin mit der änderung nun etwas überfordert.
Zur Seite: es ist eine dynamische php-Seite, welche über einen include eine andere, die eigentliche Seite einfügt. Welche das ist, wird der index-Seite über angehängte Variablen mitgeteilt. Nun wird der Inhalt der Variable nicht mehr übernommen. Ich hab nun im Netz nach brauchbaren Beispielen zur Verwendung von $_get.. gesucht, aber nichts gefunden.
So wird der link aufgerufen:
<a href='index.php?page=anmelden&group=0&ref=$ref&loginID=$loginID'>Anmelden</a>
Wie kann ich nun den Wert "page" in der aufgerufenen Seite übernehmen und ihn in der Variable $page weiter verwenden?
der include sieht bisher so aus:
include('pages/' . $group . '/' . $lg . '/' . $page . '.php');
die Seite, wo dies seine Anwendung findet, ist angegeben.
Ich grüsse den Cosmos,
RTFM
was ist denn unklar an den Ausführen bei http://php.net zum Thema? Wenn du konkret sagst, was du nicht verstehst, bekommst du eine konkrete ANtwort.
Möge das "Self" mit euch sein
Hi,
Hallo Leute. Ich hab mit meiner Seite einen Serverwechsel vor. Dieser unterstützt nun nicht mehr register global off.
Du meinst sicher, beim neuen Server steht register_globals auf dem (sinnvollen und empfohlenen) Wert 'off'.
Ich hab erst vor kurzem mit der php-Programierung begonnen und bin mit der änderung nun etwas überfordert.
Deswegen ist es empfehlenswert, gerade am Anfang sämtliche Magie abzuschalten. Neben register_globals betrifft das auch z.B. die magic_quotes-Konfigurationen.
So wird der link aufgerufen:
<a href='index.php?page=anmelden&group=0&ref=$ref&loginID=$loginID'>Anmelden</a>
Das ist ungültiges HTML. Die Sonderzeichen "&" müssen als "&" maskiert werden.
Wie kann ich nun den Wert "page" in der aufgerufenen Seite übernehmen und ihn in der Variable $page weiter verwenden?
Indem Du zunächst verstehst, dass dort keine Variablen stehen, sondern Parameter. Dann findest Du auch bald zum superglobalen assoziativen $_GET-Array.
Cheatah
Moin!
Hallo Leute. Ich hab mit meiner Seite einen Serverwechsel vor. Dieser unterstützt nun nicht mehr register global off.
Ich hab erst vor kurzem mit der php-Programierung begonnen und bin mit der änderung nun etwas überfordert.
Um es ganz kurz zu erklären: Wenn du bisher $a
benutzt hast, ersetzt du dies entweder überall durch $_GET['a']
oder schreibst an den Anfang des Skripts $a = $_GET['a']
.
So wird der link aufgerufen:
<a href='index.php?page=anmelden&group=0&ref=$ref&loginID=$loginID'>Anmelden</a>
der include sieht bisher so aus:
include('pages/' . $group . '/' . $lg . '/' . $page . '.php');
Diese Anwendung ist gefährlich! Wo prüfst du, was $group, $lg und $page enthalten? Deiner Anwendung nach solltest du an den Anfang der index.php folgendes schreiben:
$group = basename($_GET['group']);
$lg = basename($_GET['lg']);
$page = basename($_GET['page']);
Oder du führst manuelle Tests durch, um sicher zu gehen, dass böse Besucher nicht auf Teile der Seite zugreifen können, die eigentlich geschützt sein sollten.
Viele Grüße,
Robert