Frage zu $_SESSION als mehrdimensionales array

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu $_SESSION als mehrdimensionales array

    Hallo

    Ich hab ein Problem mit einem 2-dimensionalen Session-Array.

    Hier mein Code

    PHP-Code:
    print_r($_SESSION);

    #Anzahl und Seriennummer/Gerätenamen abfragen
    echo('<form method="post" action="'.$PHP_SELF.'">
        <h1>Einzelne Komponente umziehen</h1><br />'
    );
        
        echo(
    'Bitte wählen Sie nun die Anzahl dieser Komponente aus, die umgezogen werden soll 
    und geben die Daten für Seriennummer und Gerätenamen ein.<br /><br />'
    );
        
    $modell_number $_POST['select_modell_number'] ? $_POST['select_modell_number'] : '1';
        
        echo(
    'Anzahl: <select name="select_modell_number" size="1" 
    onChange="this.form.submit()">'
    );
        
        for(
    $a=1$a <= 15$a++){
            if(isset(
    $_POST['select_modell_number'])){
            
                if(
    $a == $_POST['select_modell_number']){
                    
    $selected "selected";
                }
                else
                    
    $selected "";
            }
            echo(
    '<option '.$selected.' value="'.$a.'">'.$a.'</option>');
            
        }
        echo(
    '</select><br />');
        
        for(
    $b=1$b <= $modell_number$b++){
            echo(
    '<h2>'.$b.'. Komponente:</h2>
            <p id="p_right">Seriennummer: <input type="text" name="'
    .$b.'_component_serial" 
    size="30"><br />
            Gerätename: <input type="text" name="'
    .$b.'_component_name" size="30"></p><br />');
        }
        
        echo(
    '<br />
        Platz für Bemerkungen:
        <input type="text" name="order_notes" maxlength="255" size="40"><br /><br />
        <input type="Button" value="Zurück" onClick="javascript:history.back();">
        <input type="submit" name="next_choose_components_actions_dismantling" 
    value="weiter zu Abbauaktionen">
        <input type="hidden" name="choosen_components_move" value="2">
    </form>'
    );

    print_r($_SESSION); 
    das erste print_r liefert mir folgendes:
    Code:
    Array
    (
        [loggedIn] => 1
        [userlogin] => mustermann
        [user_status] => 1
        [session_user_customer_id] => 2
        [a] => Array
            (
                [session_poa_name] => 
                [session_poa_room] => 
                [session_poa_address] => Abholadresse-anschrift
                [session_poa_postcode] => 
                [session_poa_city] => Abholadresse-ort
                [session_poa_contact_name] => Ansprechpartner am Abholort-name
                [session_poa_contact_phone1] => 
                [session_poa_contact_phone2] => 
                [session_poa_date_start] => 1109199600
                [session_dispo_distance] => 333
            )
    
        [b] => Array
            (
                [session_poa_name] => 
                [session_poa_room] => 
                [session_poa_address] => Lieferadresse-anschrift
                [session_poa_postcode] => 
                [session_poa_city] => 
                [session_poa_contact_name] => 
                [session_poa_contact_phone1] => 
                [session_poa_contact_phone2] => Ansprechpartner am Lieferort-festnetz
                [session_poa_date_start] => 1109199600
                [session_dispo_distance] => 444
            )
    beim zweiten print_r sind auf einmal meine 2-dimensionalen Daten "zerstört" und ich weiß nicht wieso und das muß ja irgendwo im Quellcode dazwischen passieren, den ich ja gepostet hab, aber wo keine Eingriffe in $_SESSION gemacht werden

    Code:
    Array
    (
        [loggedIn] => 1
        [userlogin] => mustermann
        [user_status] => 1
        [session_user_customer_id] => 2
        [a] => 16
        [b] => 2
        
    )
    Oder ist $_SESSION defaultmäßig noch gar kein mehrdimensionales Array und ich müßte es anstatt wie es jetzt ist:
    PHP-Code:
    $_SESSION['a']['session_poa_name']                 = $_POST['poa_name'];
        
    $_SESSION['a']['session_poa_room']                 = $_POST['poa_room'];
        
    $_SESSION['a']['session_poa_address']             = $_POST['poa_address'];
        
    $_SESSION['a']['session_poa_postcode']             = $_POST['poa_postcode'];
        
    $_SESSION['a']['session_poa_city']                 = $_POST['poa_city']; 
    auf folgende Weise abspeichern?

    PHP-Code:
    $_SESSION = array('a' => array('session_poa_name' => $_POST['poa_name'], 
    'session_poa_room' => $_POST['poa_room'], 'session_poa_address' => $_POST['poa_address'], 
    'session_poa_postcode' => $_POST['poa_postcode'], 
    'session_poa_city' => $_POST['poa_city'])); 
    thx
    Boneman
    Zuletzt geändert von Boneman; 24.07.2005, 20:51.

  • #2
    Ich befürchte mal, dass auf deinem System register_globals=on eingestellt ist. Du hast eine Session-Variable $_SESSION['a'] und in deiner for-Schleife benutzt du die Varaible $a. Das gleiche passiert auch mit b. Damit werden dann die Session-Variablen überschrieben. Das ist mit ein Grund, warum register_globals=off eingestellt sein sollte.

    Gruß
    Uwe

    Kommentar


    • #3
      Vielen Dank für die Erklärung. Hab register_globals nun ausgeschalten (brauch ich sowieso nicht) und nun klappt es. Danke

      Kommentar

      Lädt...
      X