Zugriff auf $_GET-Variable nicht möglich

crazyPower

Mitglied
Hallo,

ich habe folgendes Problem:
ich habe eine Datei session.php, die auf jeder Seite included wird (per "include_once"). Sie sieht folgendermassen aus:

Code:
 <?php
 require_once('../config/config.php');
 session_start();
 if ($_GET['page']=="logout")){
 	session_unset();
  	session_destroy();
 	}else{
 	echo "ist leer";
 	}
 ?>

Wenn ich nun meine portal.php (in der die session.php included ist) im Browser aufrufe, und an die Adresszeile "?page=logout" anhänge, springt er nicht in die IF-Verzweigung, und beendet damit auch die Session nicht. Auch echo $_GET['page'] spuckt nichts aus.

Woran kanns liegen?

Achja: PHP Version 4.3.11, register_globals = off

Danke

cp
 
Vesuch doch mal nur mit "include config.php" und nicht mit "include_once ..." !?

Grüsse
 
Hallo,

ich bin jetzt ein paar schritte weiter:

wenn ich o.g. Code nicht per include_once in die portal.php einbinde, sondern direkt in die Seite schreibe (an der gleichen Stelle, an der ich vorher den include hatte), funktioniert alles.
Auch include (also nicht include_once) führte nicht zu Ziel.

include ist doch bei php ähnlich wie bei c/c++, also ein reiner Textersetzer. Der Code selbst wird doch erst eingefügt, und danach interpretiert, oder nicht?

Ich will doch nur die Sessionverwaltung auslagern :(

MfG

cP
 
Hm, wirklich kurrios. Wird an irgendeiner Stelle die $_GET-Variable neu definiert? Oder wird die Anfrage intern umgeleitet ohne die Parameter mit zu übergeben?
 
hallo nochmal,

also, jetzt gehts. Der Fehler lag an folgendem:
Ich hab eine Konstante die heisst DIR_WS, und enthält die Webadresse des Servers.
Aus irgendeinem Grund ignoriert er bei einem Include der folgenden Art und Weise die $_GET-Variablen:

Code:
include_once(DIR_WS . "includes/pages/session.php");

Erfolgt der Include so:

Code:
include "includes/pages/session.php";

funktioniert es...

Kann das jemand erklären?

cu

cp
 
Hallo,

du kannst keine Webadresse per Include oder Require einbinden! Wenn must du den relativen oder noch besser den absoluten Pfad zum entsprechenden Script auf deinem Webserver verwenden.

Wenn du einmal versuchst
PHP:
include_once('http://www.tutorials.de/');
werden selbstverständlich nicht die Tutorials.de-Scripts auf deinem Webserver ausgeführt, stattdessen wird - wenn überhaupt - nur die HTML-Ausgabe includiert und von deinem Server an den Client weitergegeben.

Mamphil
 
Zurück