PHP-Session-ids werden in der URL nicht weitergegeben

  • Hallo zusammen,
    wer kann mir eine Einstellung im Firefox verraten, sodass er
    bezüglich der PHP-Session-Id's so läuft wie der IE7.
    Habe in PHP die Sessions mittel ADODB organisiert=>Cookie ist leer!

    Ich erzeuge eine Session und linke immer mit .SID =>
    Im IE7 wird die URL damit zu
    http://www...../login.php?a=xx&b=yy&PHPSESSID=808e2b01db603f59c89af9c0e8efe7f2.

    Der Firefox macht das nur manchmal.
    z.B. Wenn ich den IE offen habe und auf die gleiche Seite bin,
    ansonsten lässt Firefox die PHPSESSID einfach weg.

    Ich benötige diese PHPSESSID, um mich mittels eines anderen Benutzers
    auf mich am gleichen Client an der Seite mit anderer ID anmelden zu können.

    Welche Einstellung muss ich machen, damit Firefox die PHPSESSID
    in der URL weitergibt?

    Gruß BKLUE

  • Du erstellst doch den PHP-Code, der den HTML-Code ausspukt, den Firefox dann bekommt. Wenn dein Server also korrekt läuft und dein PHP-Code vernünftig arbeitet, verhält sich ein gewöhnlicher Firefox wie jeder andere Browser. Was du serverseitig machst, ist dein Bier, was soll der Firefox da für einen Einfluss haben?
    Schau dir einfach den HTML-Code an, der im Fx ankommt. Dann wirst du schon sehen, wo du in deinem PHP-Code ansetzen musst.

  • boardraider Wenn man keine Ahnung hat...

    Hast du schonmal das Verhalten in anderen Browsern als Firefox und IE überprüft? Übertragene Header gecheckt?

    Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.1) Gecko/20090702 Firefox/3.5

  • DasIch wrote:

    Zitat

    boardraider Wenn man keine Ahnung hat...

    Hast du schonmal das Verhalten in anderen Browsern als Firefox und IE überprüft? Übertragene Header gecheckt?

    Um die Uhrzeit sollte vielleicht nicht jeder Beiträge schreiben, wenn er dazu geistig nicht mehr in der Lage ist. Oder warum pisst du mich so von der Seite an?

    Ansonsten darfst du aber gerne erklären, warum denn der Fx eine serverseitig im URL übergeben Session-ID "vergessen" sollte. Vielleicht erhellst du die Runde mit Erläuterungen statt andere Forenteilnehmer mangels schlechter Laune zu verunglimpfen.

  • Zitat von boardraider

    Ansonsten darfst du aber gerne erklären, warum denn der Fx eine serverseitig im URL übergeben Session-ID "vergessen" sollte.


    Keine Ahnung wie dass passieren kann aber sicherlich nicht durch HTML (oder Javascript). Das sind zwei Themegebiete die ganz weit von einander entfernt sind.

    Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.1) Gecko/20090702 Firefox/3.5

  • Eine Session-ID, die man über den URL übergibt, sollte trivialerweise und vereinfacht gesagt auch in jedem (wie auch immer erzeugten) Link in der Seite enthalten sein. Somit kann das sehr wohl mit dem HTML-Code zu tun haben, ursächlich natürlich mit dem PHP-Code, der den HTML-Code erstellt. Als Ansatz zur Fehlersuche mag der HTML-Code daher ohne Zweifel dienen - wobei ich natürlich zugestehe, dass man auch die HTTP-Header prüfen sollte, um ggf. auf den Fehler im PHP-Code zu stoßen. Mangels detaillierterer Vorgehensbeschreibung des TO sind beide Empfehlungen derzeit möglich.

    Mir wäre allerdings neu, dass der Fx beim Klick auf einen Link die darin kodierten Parameter wegschneidet, genauso wäre mir neu, dass der Fx beim Aufruf eines URLs, der eine solche Session-ID enthält selbständig den HTML-Code manipuliert und die IDs daraus entfernt.

    Sollte also der generierte HTML-Code in Ordnung sein und der Fx den richtigen URL aufrufen, dann dürfte der Fehler wiederum auf der Seite des Servers liegen (falsche Verarbeitung der Parameter oder andere logische Fehler), weshalb auch dann der Firefox als Verursacher des Fehlers ausscheidet. Und die Ausgangsfrage

    Zitat

    Welche Einstellung muss ich machen, damit Firefox die PHPSESSID in der URL weitergibt?


    damit wohl weder im einen noch im anderen Fall den Kern des Problems erfasst.

  • Moin Leute,
    jetzt schlagt Euch nicht die Köppe ein:
    in http://de3.php.net/manual/de/ref.session.php
    habe ich folgenden Satz gefunden:
    "Sessions and browser's tabs

    May you have noticed when you open your website in two or more tabs in Firefox, Opera, IE 7.0 or use 'Control+N' in IE 6.0 to open a new window, it is using the same cookie or is passing the same session id, so the another tab is just a copy of the previous tab. What you do in one will affect the another and vice-versa. Even if you open Firefox again, it will use the same cookie of the previous session. But that is not what you need mostly of time, specially when you want to copy information from one place to another in your web application. This occurs because the default session name is "PHPSESSID" and all tabs will use it. There is a workaround and it rely only on changing the session's name. "

    Das ist genau das von mir beschriebene Verhalten des Firefox!
    Die Sub-Autoren geben an man, solle eine neue Session erzeugen.
    Aber das funktioniert auch nicht so, wie gebraucht.

    Firefox startet beim Aufruf - mit oder ohne Tabs - mit einer vorhandenen
    Sessionid und genau das will ich über Parameter, Programm
    irgendwie abstellen.
    Ach ja, jeder meiner links geht mit xxx?... .SID
    => es sollte immer eine PHPSESSID=xx angehängt werden.
    Nochdazu kommt: wenn ich den IE auch mit der gleichen Seite starte,
    dann macht ja Firefox das was ich will. Wie aber sag ich's dem
    Kinde? Man kann doch keine Web-Anwendung schreiben, bei der
    man Firefox nur mit gestartetem IE laufen lassen muß!

    Gut, ich kann ja, wenn ich genau den neuen Loginschirm brauche,
    das mit IE machen, aber auch das lässt den "Glanz des FX erblassen" !

    Ein Parameter (Option, etc.) wäre von Vorteil.

    Gruß
    Bernd

  • Zitat von bklue

    Die Sub-Autoren geben an man, solle eine neue Session erzeugen.
    Aber das funktioniert auch nicht so, wie gebraucht.


    Du sollst irgendeinen anderen mehr oder weniger zufälligen Namen verwenden, es ist nirgends die Rede davon eine neue Session zu erzeugen.

    Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.1) Gecko/20090702 Firefox/3.5

  • Moin DasIch,
    immer noch wach, oder schon wieder?
    Ich probier's mal mit :
    if($php_self_short == "index") { // = index.php
    $ses_id = session_id();
    $bsid_exists = false;
    $bsid_exists = check_session_id_from_db($ses_id);
    if ($bsid_exists){
    // neuen Sessionname erzeugen
    session_regenerate_id();
    $ses_id = session_id();
    }
    }

    Ist aber sehr unschön !
    By the way, da MircroSalft ja den Fx immer "kopiert" , wird es wohl
    besser sein, das auch für den IE gelten zu lassen!

    Trotzdem
    Danke !
    Gruß Bernd