Problem mit Session

Diskutiere mit über: Problem mit Session im Web-Programmierung Forum

  1. tiescher

    tiescher Thread Starter MacUser Mitglied

    Beiträge:
    217
    Zustimmungen:
    1
    Registriert seit:
    03.11.2003
    Hi Leute,

    ich habe folgendes Problem: Ein Käufer wird von PayPal zurück auf meine Seite gelinkt. Dann wird per PDT (falls das jemandem was sagt) überprüft, ob seine Transaktionsdaten in Ordnung sind. Sollte dies der Fall sein, passiert folgendes:

    $_SESSION["user"] = $keyarray['payer_email'];

    Dann wird ein Link angeboten auf die Datei download.php

    Dort passiert das hier:

    <?php
    // check if user is authorized for Download
    session_start();
    if(isset($_SESSION["user"]))
    {
    // send http-headers to browser
    header("Content-type: application/pdf");
    header("Content-Disposition: attachment; filename=sampl_dict.pdf");
    readfile('files/tsd.pdf');
    }
    else
    {
    echo "You are not allowed to access this page!";
    }
    ?>

    Ds Problem ist, dass ich immer in den else-Zweig komme, obwohl ja die Session-Variable gesetzt wurde. Woran liegt es, dass er nicht erkennt, dass die Session-Variable "user" korrekt gesetzt wurde?

    HIIILFE!

    Danke schon mal...
    tiescher
     
  2. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.034
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    Versuchs doch mal mit

    PHP:
    if ($_SESSION['user'] && $_SESSION['user']!="")
    {
     ...
    }
     
  3. tiescher

    tiescher Thread Starter MacUser Mitglied

    Beiträge:
    217
    Zustimmungen:
    1
    Registriert seit:
    03.11.2003
    Danke für die schnelle Antwort, aber hat leider nix gebracht.
    Was wolltest Du damit bezwecken?

    Hat das vielleicht irgendwas mit zuvor gesendeten HTTP-Headern zu tun, dass er die Session nicht mehr starten kann? Keine Ahnung. Irgendwie alles sehr seltsam.

    Hast Du noch ne Idee?

    Thanx
    tiescher
     
  4. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.034
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    Die Frage ist, ob Deine Session noch existiert, richtig? Wenn Du vorübergehend Deine URL verläßt, kann es sein das Du eine neue SESSION-ID bekommst ( muß aber nicht). Mit dem weglassen von isset wollte ich nur eine Fehlerquelle ausschlißen ( hätt ja sein können, das isset bei superglobals nicht funktioniert). Gib doch mal

    print_r($_SESSION)

    aus. Steht in der Session überhaupt was drinnen?

    spannend ist auch ob in

    $keyarray['payer_email'];

    ein Wert enthalten ist, also auch hier mit print_r mal ausgeben!
     
    Zuletzt bearbeitet: 29.08.2005
  5. dms

    dms Gast

    Ist auf dieser Seite, auf der auch der Link angeboten wird, die Session vorhanden? Lass Dir nach dem Schreiben von $_SESSION["user"] mal ein print_r von $_SESSION ausgeben.

    Ich hatte letztens auch ein Problem mit Session-Variablen auf einem bestimmen Server (PHP 4.3.11). Dort musste ich die Variablen explizit mit session_register() anlegen, sonst wurden Sie nicht übernommen. Versuch das auch mal.
     
  6. tiescher

    tiescher Thread Starter MacUser Mitglied

    Beiträge:
    217
    Zustimmungen:
    1
    Registriert seit:
    03.11.2003
    Jo also $keyarray['payer_email'] ist gesetzt. Wenn ich die Session ausgebe nachdem ich sie gesetzt habe ist alles korrekt.

    Ob die in dem Download Script noch da ist probier ich gleich mal.

    Bis gleich

    tiescher
     
  7. tiescher

    tiescher Thread Starter MacUser Mitglied

    Beiträge:
    217
    Zustimmungen:
    1
    Registriert seit:
    03.11.2003
    Also Leute jetzt hab ichs getestet.

    Auf der Seite auf der der Link angeboten wird krieg ich folgendes:

    Array ( [user] => blabla@nowhere.com )

    Auf der Download Seite aber kommt nur das hier:

    Array ( ) You are not allowed to access this page!

    Also kommt wohl die Session gar nicht rüber.

    Warum nicht?

    thanx
    tiescher
     
  8. dms

    dms Gast

    Hast Du meinen Tip mit session_register() mal getestet?
     
  9. tiescher

    tiescher Thread Starter MacUser Mitglied

    Beiträge:
    217
    Zustimmungen:
    1
    Registriert seit:
    03.11.2003
    Ehrlich gesagt, wollte ich das vermeiden. Dazu muss doch in der php.ini register_globals ON sein und da wird einem ja überall davon abgeraten. Andererseits fällt mir jetzt auch keine andere Lösung ein. Dir vielleicht?

    Ich glaub ich probiers jetzt einfach mal...

    Meld mich gleich nochmal...


    Verdammter Mist!

    Jetzt hab ichs versucht dann kam folgendes als Fehler:

    Warning: session_register(): Cannot send session cache limiter - headers already sent

    Is mir auch klar warum: session_register() ruft implizit session_start() auf.
    Aber der Ort an dem der Befehl ausgeführt wird ist included, d.h. ich hab vorher schon etwas ausgegeben. Dann funktioniert session_start() und damit auch session_register() nicht mehr. Mist was jetzt? Fällt Euch noch was ein?

    Thanx
    tiescher
     
    Zuletzt bearbeitet: 29.08.2005
  10. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.034
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    session_register ist auch deprecated und sollte unnötig sein beizeiten!

    interessant ist doch:

    Das Session-Array ist also leer und es gibt ein Rechteproblem. Vielleicht prüfst Du nochmal die Zugriffsrechte auf die Datei? Ist es das?
     
Die Seite wird geladen...
Ähnliche Themen - Problem Session Forum Datum
XAMPP Problem mit Zugriffsrechte Web-Programmierung 30.04.2014
Syntax Problem PHP Variable an JS-Funktion Web-Programmierung 12.09.2013
Swiftmailer Problem mit der Danke-Seite Web-Programmierung 03.07.2013
Session Problem Web-Programmierung 23.01.2006
PHP Shop - Session + Array Problem Web-Programmierung 03.08.2005

Diese Seite empfehlen

Benutzerdefinierte Suche