basti_p: Sessionproblem mit Flash-Upload

Hallo,

folgendes Szenario: ich habe eine HTML-Seite, in diese ist eine SWF-Datei eingebunden. Diese SWF-Datei ermöglicht die Auswahl und den Upload von mehreren Dateien auf einmal. Leider wird beim Aufruf des Uploadskript aus der SWF-Datei die aktuelle Session nicht mit übergeben. Daraufhin habe ich versucht, die Session via URL mit zu übergeben:

URL Uploadskript: "uploadFiles.php?<?php echo session_name();?>=<?php echo session_id();?>"

ergibt auch ganz richtig: uploadFiles.php?PHPSESSID=meineSessionId...

Aber leider wird trotzdem in uploadFiles.php eine andere SessionId erzeugt. Wie kann ich die Übernahme der mitgelieferten Session erzwingen?

Vielen Dank und Grüße
Basti

  1. Hallo Basti,

    hast du in uploadFiles.php schon geprüft was in $_GET ankommt?

    Gruß Rainer

    1. Hallo Rainer,

      die GET-Variablen kommen ordnungsgemäß an; ich schreibe sie zum Testen in eine Logdatei: $_GET['PHPSESSID']."\n".session_id();
      Raus kommt dann z.B.:
      a39a980acffb5342eff8b0cd836203c8
      034415e0e90c04f3a3798078df3ae15c
      :-(

      Grüße Basti

  2. Hallo,

    habe das Ganze gerade mit dem IE7 getestet - da funktioniert die Übergabe der SessionId - kann das ein Firefox-Bug sein?

    Grüße Basti

    1. Hallo Basti,

      dazu fällt mir im Moment nur das Stichwort "GPC" ein.
      Bestimmung der Reihenfolge, in der Environment-Parameter ins Scope des Scriptes übertragen werden.

      http://de.php.net/manual/de/ini.core.php#ini.variables-order

      Du solltest nunn aber nicht den Fehler machen, diese Ordnung zu verändern, sondern erst einmal schauen, in welchen Arrays überhaupt eine Session-ID vorliegt. Vermutlich gibt es eine in $_GET (von Dir eingestanzt) und eine in $_COOKIE (aus dem Browser als "Session-Cookie") mitgesandt.

      Die normale Reihenfolge ist EGPCS

      Environment
      Get
      Post
      Cookie
      Session

      Der letzte, der einen Wert für den Namen liefert, gewinnt.

      Wenn die Einstellung "use only Cookies" gewählt wurde, wird die URL auch gar nicht abgefragt

      http://de.php.net/manual/de/ref.session.php#ini.session.use-only-cookies

      LG
      Chris©

      1. Hallo Chris,

        Du hast recht: in uploadFiles.php steht im Cookie eine SessionID - aber eine andere als in der aufrufenden Seite:-(

        session.use_only_cookies ist 0

        Ich habe die Variablenreihenfolge jetzt per ini_set geändert in "EPCSG" (nur in der uploadFiles.php) jetzt funktioniert es - vielen Dank!

        Grüße Basti

        1. Hallo Chris,

          Du hast recht: in uploadFiles.php steht im Cookie eine SessionID - aber eine andere als in der aufrufenden Seite:-(

          Dann solltest Du besser schauen, woran das liegen kann und NICHT die Reihenfolge verstellen. Du kannst die Session doch auch explizit starten, also dem session_start() eine Session-ID übergeben und vorher auch mit session_name einen eigenen Namen zuweisen, wenn dies nötig ist.

          Die Variables Order wird zwar zum Glück (inho) für nichts anderes mehr benötigt heute (Register Globals ist doch aus?), aber Du solltest trotzdem nach den Ursachen forschen, warum SWF eine eigene Session aufmacht (also den an den Client gesendeten Cookie nicht annimmt und repliziert).

          LG
          Chris©

    2. Hallo,

      Wie Chris geschrieben hat!
      Schau mal in deine Einstellungen vom FF und schalte mal die Cookies an. Wenn es dann "geht" weisst du zumindest erst einmal was ankommt.

      Gruß Rainer