ChrisB: Include Variable sicher oder nicht?

Beitrag lesen

Hi,

daraus ist mir nicht ersichtlich wonach ich gefragt hab.

Ich bezog mich (bei Leuten, die *vernuenftig* Zitieren, ist das in aller Regel ganz einfach ersichtlich - also mach du das doch bitte auch, und zitiere nicht einfach alles) lediglich auf deine Frage:

Warum $_GET['hautpverzeichnis']?

Ich frage nur weil ich sicher gehen möchte und zu dem Thema
so nichts finde. Grundlegend ist das die Variable
$hauptverzeichnis nun ja nicht verändert werden kann.
Oder doch???

Das grundsaetzliche Problem bei register_globals=on (einer Einstellung, die so heute nicht mehr verwendet werden sollte) ist, dass nicht im Script selber definierte Variablen "von aussen" mit einem Wert belegt werden koennen. Fragt man den Wert einer solchen Variablen nun blauaeugig ab, ohne ihn vorher selber festgelegt zu haben, reagiert das Script u.U. anders, als eigentlich beabsichtigt.

$hauptverzeichnis = "./";
include("$hauptverzeichnis"."includes/login_check.php");

Nu' lass doch hier bitte endlich die Anfuehrungszeichen um $hauptverzeichnis weg!

include($hauptverzeichnis."includes/login_check.php");

Kann doch nicht gehen oder?? Auch nicht mit $_REQUEST $_GET $_POST??

Selbst wenn register_globals=on waere, besteht hier keine Gefahr, weil du den Wert fuer $hauptverzeichnis ja im Script selber festlegst. (Natuerlich erst ab der Stelle, wo du ihn festlegst. Wuerdest du die Variable bereits vor dieser Zeile verwenden, waere das wieder potentiell gefaehrlich.)

Du solltest waehrend der Entwicklung das error_reporting auf E_ALL stellen (bzw. E_ALL und E_STRICT unter PHP 5) - dann weist dich PHP auf solche "Nachlaessigkeiten" wie den Zugriff auf eine nicht definierte Variable etc. selber hin.

MfG ChrisB