Enrico: Neues Problem bzgl. "Problem beim Durchlaufen eines Array"

Beitrag lesen

Hallo,

bitte entschuldigt, dass ich einen neuen Beitrag eröffnet habe, aber ich habe dies deshalb getan, weil mein ursprüngliches Problem gelöst wurde, nun aber ein neues Problem aufgetreten ist, das mit vorgenanntem Beitrag in Zusammenhang steht.

Ausgangspunkt ist, dass ich über PHP eine ID erzeugen lasse und diese als Ausgangspunkt meines Warenkorb-Arrays verwenden möchte, d.h. alle weiteren Variablen samt deren Werte sind dieser ID untergeordnet.

Meine Überlegung hierbei war, dass an keiner Stelle ein konkretes Auslesen der ID über eine Zuordnung nach dem Muster $ID = $_SESSION['ID'] möglich sein soll, um ein Ausspionieren der ID (weitestgehend) zu unterbinden.

Ich lösche auf unserer Startseite (Code nachfolgend zusammengekürzt) zunächst alle Cookies und zerstöre etwaige Session-Daten (hoffentlich) komplett, erzeuge dann die ID und initialisiere die Session:

~~~php

<?php
      session_start();

if (ini_get ("session.use_cookies"))
      {
         $params = session_get_cookie_params();
         setcookie (session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
      }

session_destroy();
      session_start();

$chars = md5 (uniqid (mt_rand(), true));

$ID  = substr ($chars, 0, 8) . '-';
      $ID .= substr ($chars, 8, 4) . '-';
      $ID .= substr ($chars, 12, 4) . '-';
      $ID .= substr ($chars, 16, 4) . '-';
      $ID .= substr ($chars, 20, 12);

$_SESSION[$ID] = md5 (uniqid ($ID, true));

?>

   ~~~html
  
   <html>  
      <head>  
      </head>  
      <body>  
         <a href="SEITEN/Index.php">  
            <img id="Logo" src="GRAFIKEN/logo-800px.png">  
         </a>  
      </body>  
   </html>  
   

Nach Anklicken unseres Logos wird auf unsere eigentliche Homepage weitergeleitet und die Session-Verwaltung über session_start(); erneut aufgerufen.

Mein Problem ist nun aber, wie ich auf die mir unbekannte ID zugreifen kann, um ihr übergebene Artikel unterordnen zu können.
   ~~~php

if (isset ($_SESSION[$ID]))
   {
      if (! is_array ($_SESSION[$ID]))
      {
         $_SESSION[$ID] = array();
      }

$Artikel = array ('Bezeichnung' => $Bezeichnung,
                        'Groesse'     => $Groesse,
                        'Farbe'       => $Farbe,
                        'Anzahl'      => $Anzahl,
                        'Einzelpreis' => $Einzelpreis);

array_push ($_SESSION[$ID], $Artikel);
   }
   else
   {
      echo "SESSION existiert nicht";
   }

Ein Zugriff über `$_SESSION[$ID]`{:.language-php} liefert mir die Fehlermeldung "Undefined variable: ID", was auch nachvollziehbar ist, da ich keine Variable namens $ID übergeben habe.  
  
Schreibe ich anstelle von $ID überall 'ID', dann geht die Prüfung ohne Fehlermeldung in den else-Zweig und gibt mir "SESSION wurde nicht übergeben" aus.  
  
Wie kann ich nun aber auf diese ID zugreifen, ohne sie explizit auslesen zu müssen?  
  
Ich drehe mich hier im Kreis:  
  
Ich will, wie ich eingangs geschrieben habe, keine direkte Zuordnung im Code, dann könnte ich (und auch andere) sie direkt auslesen und ich sie verarbeiten (und möglicherweise andere missbrauchen).  
So weiß ich aber nicht, wie ich auf sie zugreifen kann.  
  
Könnte ihr mir hier helfen?  
  
  
Vielen Dank und Gruß,  
Enrico