PHP, Flash und Cookies

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

  • PHP, Flash und Cookies

    Hiho Php-Resource Community,

    ich habe momentan folgendes Problem:
    Ich hab hier ein System (PHP + MySQL) indem sich Leute registrieren und einloggen können.
    Jetzt soll dieser Login auch für ein Flash verwendet werden.
    Dazu hab ich eine Schnittstelle bereit gestellt, an die Daten (Benutzername+Passwort) übermittelt werden können, diese werden auf Richtigkeit überprüft und anschließend wird zurück gegeben ob das Passwort zu dem Benutzernamen passt oder nicht.
    Soweit alles kein Problem.
    Funktionieren tut das Ganze so:
    -> Benutzer gibt Daten in Flash ein
    -> Flash ruft Schnittstelle mit Parametern auf
    -> Schnittstelle antwortet mit Ja oder Nein
    -> Abhängig von Ja oder Nein zeigt das Flash dann zusätzliche Inhalte an.

    Funktioniert auch alles.
    Das Problem ist nur hier: Der Login im Flash hält genau so lange wie die Seite nicht verlassen oder aktualisiert wird. Danach ist ein neuer Login fällig.

    Der Programmierer des Flashs erwartet nun von mir, dass meine Login-Schnittstelle beim Benutzer ein Cookie setzt, dass den Login speichert. Nur ruft ja der Nutzer selbst das PHP-Script, das die Login-Schnittstelle darstellt, nie auf. Nur das Flash selbst ruft die Schnittstelle auf. Wie genau, weiß ich nicht, da ich weder Zugriff auf den Quellcode des Flashs habe, noch den Quellcode verstehen würde, da ich kein ActionScript kann.

    So weit ich weiß kann das auch nicht funktionieren mit dem Cookie solange der Benutzer das Script nicht selbst aufruft. Wenn ich setcookie() verwende, bekomme ich auch kein Cookie gesetzt wenn das Flash die Schnittstelle aufruft. Rufe ich meine Schnittstelle im Browser auf, bekomme ich das Cookie allerdings gesetzt.


    Schon mal Danke im Vorraus für eventuelle Antworten

    Freizeit-Ratgeber.de
    - Mein aktuelles Projekt rund um Freizeitparks


  • #2
    Ich bin kein Flasher, aber afaik kann Flash keine Browser-Cookies setzen. Es kann allerdings via ExternalInterface eine Javascript-Funktion aufrufen und die darf Cookies setzen.

    Kommentar


    • #3
      Die Verwaltung der Session ist sicherlich durch dein System zu realisieren. Wie soll die Flash-Applikation Kenntnis darüber erhalten, ob der User noch immer eingeloggt ist? Über das Anmelde-Interface?


      /.../ bekomme ich auch kein Cookie gesetzt wenn das Flash die Schnittstelle aufruft /.../
      Vielleicht ein Pfad-Problem?

      GZ,

      Ron

      Kommentar


      • #4
        grundsätzlich sollte es egal sein, ob flash, javascript oder whatever auf deiner seite ausgeführt wird.
        dein system verwaltet die sessions / cookies.
        wenn das flash den server "fragt", ist der user angemeldet, bekommt es ein ja oder nein, egal ob der user sich gerade angemeldet hat, oder ein cookie (von deiner schnittstelle gesetzt) die dauerhafte anmeldung regelt.

        Kommentar


        • #5
          Ich glaube das Problem des TO ist, dass die Authentifizierung in Flash stattfindet. Der User gibt seine Daten ins Flash-Filmchen ein, dieses fragt damit die Schnittstelle ab, bekommt ein OK und – hier beginnt das Problem – nun soll der Login-Status nicht nur mit einem Flash-Cookie gespeichert werden, sondern es soll ein Browser-Cookie gesetzt werden, damit der User auch auf der nächsten Seite noch eingeloggt ist (wo es gar kein Flash-Filmchen gibt).
          Die Schnittstelle wird also von Flash aufgerufen. Würde sie HTTP-Header senden, um ein Cookie zu setzen, würde Flash diese einfach ignorieren. Der Browser ruft die Schnittstelle nie auf, also kann die Schnittstelle kein Browser-Cookie setzen. Flash muss das übernehmen. Kann es aber nicht. Jedenfalls nicht direkt. Nur über ExternalInterface + JS.
          Sollte der User JS deaktiviert haben, bleibt nur eins übrig: Das Flash muss von der Schnittstelle ein One-Time-Token bekommen, lädt die aktuelle Seite neu mit dem Token als GET-Parameter und wenn der Server diesen Request bekommt und das Token gültig ist, wird das Cookie gesetzt. Das kann aber ziemlich umständlich sein, weil dann das Flash-Filmchen wieder von vorn beginnt.

          Kommentar


          • #6
            Zitat von onemorenerd Beitrag anzeigen
            Ich glaube das Problem des TO ist, dass die Authentifizierung in Flash stattfindet. Der User gibt seine Daten ins Flash-Filmchen ein, dieses fragt damit die Schnittstelle ab, bekommt ein OK und – hier beginnt das Problem – nun soll der Login-Status nicht nur mit einem Flash-Cookie gespeichert werden, sondern es soll ein Browser-Cookie gesetzt werden, damit der User auch auf der nächsten Seite noch eingeloggt ist (wo es gar kein Flash-Filmchen gibt).
            Genau das ist das Problem.
            Das Flash stellt dem Benutzer weitere Funktionen auf der Homepage bereit, die ohne Flash nicht umsetzbar wären.
            Ist der Benutzer auf der Homepage eingeloggt, dann bekomm ich das über Parameter im Flashaufruf an das Flash übermittelt, das ist nicht das Problem. Nur eben in die andere Richtung will momentan noch nicht richtig funktionieren.

            Aber dein Tipp mit ExternalInterface werde ich mal weiter verfolgen, ich glaube damit lässt sich das umsetzen. Aktiviertes Javascript ist sowieso eine der Grundvorraussetzungen um das gesamte System überhaupt verwenden zu können, also ist das kein Beinbruch.

            Freizeit-Ratgeber.de
            - Mein aktuelles Projekt rund um Freizeitparks

            Kommentar


            • #7
              flash<-php->cookie - Flashforum ?

              Kommentar


              • #8
                Aha?! Wenn ich das richtig sehe, kommen die HTTP-Header und damit ein Cookie doch beim Browser an, auch wenn der Request von Flash ausging. Das steht aber im Widerspruch zu
                Zitat von bbrueck Beitrag anzeigen
                Wenn ich setcookie() verwende, bekomme ich auch kein Cookie gesetzt wenn das Flash die Schnittstelle aufruft. Rufe ich meine Schnittstelle im Browser auf, bekomme ich das Cookie allerdings gesetzt.

                Kommentar


                • #9
                  Hmm... Vielleicht hat der Flashprogrammierer hier scheisse gebaut. Werd mir mal das Beispiel aus dem genannten Post ansehen, vielleicht versteh ich ja n bisschen von dem was da steht

                  Freizeit-Ratgeber.de
                  - Mein aktuelles Projekt rund um Freizeitparks

                  Kommentar

                  Lädt...
                  X