Problem bei Variablenübergabe in einer Session

  • Hallo liebe Freunde,

    ich kämpfe seit einigen Tagen mit der Übergabe von Variablen aus einer Session. Damit das Problem übersichtlich bleibt, habe ich 3 Testscripte erstellt. Das erste Script übergibt Variable an das zweite Script per INCLUDE. Die Übergabe an das dritte Script soll per über einen LINK-Aufruf erfolgen. Die Übergabe per INCLUDE funktioniert problemlos, leider kommen die Daten im dritten Script nicht an. Für eure Hilfe bin ich sehr dankbar. Bin ein Newbie, habt also bitte ein wenig Nachsicht mit mir. Danke.

    Script1:

    Script2:

    Script-3:



    Und hier jetzt die Ausgabe am Bildschirm:

    Code
    Script1Session-ID: gb48m296nbc9a8regu1i9iicm3
    Script1Datum :     2017-04-16
    Script1Personen : 18
     Script2Session-ID: gb48m296nbc9a8regu1i9iicm3
    Script2Datum : 2017-04-16
    Script2Personen : 18
          Erstes Script
        Datum und Personen eingeben und absenden                Datum
         Personen
                  zum dritten Script [URL='http://localhost/test/3beispiel_testen.php']klicken[/URL]

    Jetzt die Bildschirmausgabe nach dem LINK:

  • Dreh das Error-Reporting hoch, indem du an den Anfang diese Zeilen einbaust:

    PHP
    error_reporting(E_ALL);
    ini_set('display_errors', true);


    Du solltest dann sowas bekommen: Cannot send session cache limiter - headers already sent

    Und damit fütterst du dann mal google

  • Hallo, habe das Error-Reporting in alle Scripte eingebaut. Leider ohne Wirkung. die Ausgabe sieht nach wie vor GLEICH aus.
    Hier zur Ansicht das dritte Script:

    Code
    [h=2]Session Variablen anzeigen[/h]  
       Script3Session-ID: 1r6rdgpd21t7ad9b1rr2c1fd52
    
    
    [B]Notice[/B]:  Undefined variable: _session in [B]C:\xampp\htdocs\test\3beispiel_testen.php[/B] on line [B]24[/B]
    Script3Datum : 	
    
    
    [B]Notice[/B]:  Undefined variable: _session in [B]C:\xampp\htdocs\test\3beispiel_testen.php[/B] on line [B]26[/B]
    Script3Personen :

    Einmal editiert, zuletzt von hpuettma (16. April 2017 um 20:05)

  • $_SESSION, nicht $_session

    Und wenn dein PHP immer noch kein Warning bei session_start ausspuckt, stimmt etwas mit deiner Konfiguration nicht.

  • Hallo Bandit, das war es! Nachdem ich alle Begriffe mit 'session' in 'SESSION' geändert habe, bekomme ich das richtige Ergebnis. Tausend Dank für die freundliche Unterstützung. Dieser Fehler wäre mir nie aufgefallen.

    Code
    [B]Session Variablen anzeigen[/B]
    
    
      
       Script3Session-ID: 1r6rdgpd21t7ad9b1rr2c1fd52
    Script3Datum :     2017-04-16
    Script3Personen : 18
    • Offizieller Beitrag

    Du solltest dennoch den Kontextwechsel betrachten und Dich stärker an das EVA-Prinzip halten.
    Denn mit dem von Bandit erwähnten Problem headers already sent wirst Du früher oder später noch konfrontiert.
    header(), session_start() und setcookie() - um nur drei zu nennen - setzen voraus, dass zuvor keinerlei Ausgabe an den Ausgabekanal gesendet wurde.
    Ein einzelnes Zeichen und sei es ein Leerzeichen oder Zeilenumbruch, kann aber schon so eine Ausgabe sein!

    Ich bin zwar verwirrt muss ich zugeben, dass das hier

    PHP
    <html> <?php
    header('Content-Type: text/html; charset=ISO-8859-1');

    nicht bereits einen solchen Fehler hervorruft, denn auch das <html> ist bereits eine Ausgabe.
    Aber auch wenn er dies scheinbar durchgehen lässt, solltest Du HTML und PHP voneinander besser trennen, denn früher oder später knallt es Dir um die Ohren und dann ist die Fehlersuche umso schwieriger je mehr Kontextwechsel Du hast und überprüfen musst.