Hallo,
Session-Variablen soll(t)en doch datei- und auch funktionsübergreifend gültig sein, oder?
Ich habe nun folgenden Aufbau:
Datei "standard.php":
require ("standardFunktionen.php");
function seiteAufbauen()
{
initialisieren();
sprachauswahlKonfigurieren();
}
Datei "standardFunktionen.php":
function initialisieren()
{
if (!isset ($_SESSION["seite"]) || !preg_match ("/^(home|band|...)$/", $_SESSION["seite"]))
{
$_SESSION["seite"] = "home";
}
if (!isset ($_SESSION["sprache"]) || !preg_match ("/^(d|e)$/", $_SESSION["sprache"]))
{
spracheKonfigurieren();
}
}
function spracheKonfigurieren()
{
if (!isset ($_SERVER["HTTP_ACCEPT_LANGUAGE"]) || empty ($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
{
$_SESSION["sprache"] = "d";
}
else
{
$unterstuetzteSprachen = preg_split("{,\s*}", $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$qualitaet = 0;
if (is_array ($unterstuetzteSprachen) && (count ($unterstuetzteSprachen) > 0))
{
foreach ($unterstuetzteSprachen as $schluessel => $wert)
{
if (!preg_match ("{^([a-z]{1,8}(?:-[a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$}i", $wert, $treffer))
{
continue;
}
$details = explode ("-", $treffer[1]);
if (isset ($treffer[2]))
{
$prioritaet = floatval ($treffer[2]);
}
else
{
$prioritaet = 1.0;
}
while (count ($details) > 0)
{
if ($prioritaet > $qualitaet)
{
$sprache = strtolower (substr ($details[0], 0, 1));
$qualitaet = $prioritaet;
break;
}
break;
}
}
}
if ($sprache == "de")
{
$_SESSION["sprache"] = "d";
}
else
{
$_SESSION["sprache"] = "e";
}
}
}
function sprachauswahlKonfigurieren()
{
if ($_SESSION["sprache"] == "d") <=== [1]
{
$klasse = "englisch";
$auswahl = "e";
}
else
{
$klasse = "deutsch";
$auswahl = "d";
}
$onclick = 'seiteAufrufen("' . $_SESSION["seite"] . '", ' . (isset ($_SESSION["unterseite"]) ? $_SESSION["unterseite"] : "") . '")'; <=== [2]
echo '<div id="sprachauswahl" class="' . $klasse . '" onclick=' . $onclick . '></div>';
}
Ich bekomme allerdings folgende Mitteilungen:
Notice: Undefined index: sprache in C:\XAMPP\htdocs\homepage\php\standardFunktionen.php on line 75 (markiert mit [1])
Notice: Undefined index: seite in C:\XAMPP\htdocs\homepage\php\standardFunktionen.php on line 86 (markiert mit [2])
Was habe ich im Code falsch gemacht?
Danke und Gruß Enrico