Enrico: Notice: Undefined index bei Session-Variablen

Beitrag lesen

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