komisches verhalten
humpdI
- php
0 ChrisB0 Deus Figendi
hallo leute!
ich habe ein sehr komisches verhalten meiner session variable, mit folgendem code
echo "<br>session: ";
echo $_SESSION['lang'];
if($_SESSION['lang'] == "de" ||
$_SESSION['lang'] == "en"){
echo "<br>session: ";
echo $_SESSION['lang'];
echo '<br>include("languages/"'.$_SESSION['lang'].'".php");';
include("languages/".$_SESSION['lang'].".php");
echo '<br>include("languages/"'.$_SESSION['lang'].'".php");';
echo "<br>session: ";
echo $_SESSION['lang'];
echo '<br>include("languages/"'.$_SESSION['lang'].'".php");';
}else{
include("languages/de.php");
echo '<br>include("languages/de.php"); - default';
}
bekomme ich folgende ausgabe:
session: de
session: de
include("languages/"de".php");
include("languages/"Array".php");
session: Array
include("languages/"Array".php")
warum ändert die Session variable auf einmal von "de" auf "Array" ?? das kann doch nicht sein oder, ich frage sie doch nur ab und verändere nichts!?!?!
Hi,
warum ändert die Session variable auf einmal von "de" auf "Array" ?? das kann doch nicht sein oder, ich frage sie doch nur ab und verändere nichts!?!?!
Du hast die Stelle doch bereits eingekreist mit den Testausgaben - vor der Einbinden von languages/de.php stimmt noch alles, nach der Einbindung nicht mehr. Also *wo* schauen wir jetzt vielleicht mal rein ...?
MfG ChrisB
hallo,
in der de.php definiere ich ein array - dieses ist genau jenes array welches dann in der session variable drinnen steht - sehr sehr Seltsam!
hier die de.php:
<?
$lang = array(
"menu_home" => "...",
"menu_news" => "...",
"menu_portrait" => "...",
"menu_gallery" => "...",
"menu_projects" => "...",
"menu_media" => "...",
"menu_imprint" => "...",
"headline_latest" => "...",
"home_desc_1" => "...",
"home_desc_2" => "...",
"home_desc_3" => "...",
"latest_desc_1" => "..."
);
?>
und die ausgabe von $_SESSION['lang'] mit print_r
Array
(
[menu_home] => ...
[menu_news] => ...
[menu_portrait] => ...
[menu_gallery] => ...
[menu_projects] => ...
[menu_media] => ...
[menu_imprint] => ...
[headline_latest] => ...
[home_desc_1] => ...
[home_desc_2] => ...
[home_desc_3] => ...
[latest_desc_1] => ...
)
Hi,
in der de.php definiere ich ein array - dieses ist genau jenes array welches dann in der session variable drinnen steht - sehr sehr Seltsam!
Nee, gar nicht seltsam.
$lang = array(
$_SESSION['lang']
Wenn register_globals wider jegliche Vernunft immer noch auf on steht, dann ergeben sich durch den gleichen Bezeichner bei der Variablen und beim Array-Index in $_SESSION genau solche Nebeneffekte.
MfG ChrisB
richtig, das war der grund.
ich hatte das schon probiert eine änderung des bezeichners, jedoch beim debuggen vergessen den bezeichner auch zu ändern, deswegen war ich zuerst der meinung es bringt nichts.
register_globals wird sofort abgestellt, das darf natürlich nicht passieren.
vielen dank für deine kompetente hilfe!
lg, humpdi
Morgen,
ich muss gestehen, im Gegensatz zu ChrisB seh' ich's auch nicht.
Aber was steht denn in dem Array? Gib den doch einfach mal via var_dump($_SESSION['lang']); aus, vielleicht bringt dich das auf die Spur.
ich muss gestehen, im Gegensatz zu ChrisB seh' ich's auch nicht.
Oh äh logisch, er meint wohl IN der de.php würde die Variable neu gesetzt... erscheint wahrscheinlich :)