Jojo: glbale variable nicht über $GLOBALS erreichbar

Beitrag lesen

Hallo bernhard

ich habe ein etwas schwer zu beschreibendes problem und weiss nicht mehr wo ich noch nach der ursache suchen soll:

Naja... sollte doch nicht allzu schwer werden ;)

im index.php file steht bei mir:

require_once $list; // $list = 'config/load.php';

Es ist gefährlich Variablen in requires und includes zu verwenden
Wahrscheinlich wirst du so oder so nur die 'config/load.php' einbinden ... oder ?
--> require_once 'config/load.php';
Und schon ist die Welt besser :D

in der besagten Datei load.php werden dann sämtliche module geladen:

require_once 'config1.php';
require_once 'config2.php';
require_once 'config3.php';

Das sollte eigentlich kein Problem sein ;)

in den config files sind variablen definiert, über die ich in meiner applikation via $GLOBALS['variablenname'] zugreife. also z.b:

$db['host'] = 'localhost';
$db['user'] = 'my_user';
etc.

Naja ... wäre es da nicht besser eine von PHP gelieferte Funktion zu verwenden ?
parse_ini_file
Diese Funktion verwende ich sehr gerne !

Aber nur zur Info !
-> Du musst aufpassen !
-> http-Deeplink ! und schon kann man alles sehen
-> einfach config.ini.php nennen und einen Parse Error bei Direktaufruf erzeugen !

[Auszug]
;<?php /
; Allgemeine Konfigurationen
;
[/Auszug]

Ergibt dann einen Fatal Error => unexpected "/"
Vllt nicht die schönste Methode, aber besser als nichts ;)
Man könnte es auch mit .htacces schützen.

die config dateien werden ordnungsgemäss includiert & interpretiert (ich habe das mit echo-statements überprüft), allerdings kann ich mit $GLOBALS['db'] danach nicht (von meiner applikation aus) auf die $db varaible zugreifen. das geht nur dann, wenn ich in jedem config file vor jede Variable die ich dort definiere z.b. $db =& GLOBALS['db']; setze.

Wo willst du denn die Variable aufrufen ?

Vllt solltest du die Configs so einbauen :
$GLOBALS['db']['user'] = "Username";
$GLOBALS['db']['pass'] = "Passwort";

Und dann noch :
include_once 'config/load.php';

Dann kannst du auf $GLOBALS['db']['user'] zugreifen.

echo $GLOBALS['db']['user'];
Ausgabe :
Username

Bin absolut überfragt was hier falsch ist. Hoffe auf Tipps.

register_globals ist Off (hab auch On schon probiert)

Das hat damit eher weniger zu tun ;)

Hoffe ich konnte helfen.

Gruß Jojo