Mailinglisten-Archive |
Hallo Andreas, Am Freitag, 29. September 2006 19:02 schrieb Andreas Kempf: > Hallo allerseits, > > habe ein obskures Problem mit Firefox-Usern. Zuerst dachte ich, es > wäre ein Session/Cookie-Problem, doch da Session und Cookie nach dem > Logout definitiv geleert werden, zudem das mit dem IE nicht > reproduzierbar ist, der Quelltext ebenfalls das Problem nachweist, > gehe ich davon aus, dass es am FF liegt. > > Folgende Situation: > > Der Fehler tritt auf, wenn unterschiedliche User am gleichen Rechner > sitzen oder man zwei oder mehr Profile hat. Das ganze auf einer > Plattform, auf der Email und Passwort als Login benutzt werden > (Felder im Login-Form haben allerdings einen anderen Namen). > > - Man loggt sich mit Profil A ein > > - Man ändert und speichert das Profil A. Gleichzeitig wird/wurde > Firefox erlaubt, das Email und das Passwort der Eingabefelder im FF- > Formular-Cache (oder wie das heisst) zu speichern. ist das nicht schon die Erklärung für Dein Problem, daß Feldwerte im FF-Formular-Cache gespeichert werden dürfen? Wenn Du dem IE das Speichern der Formularwerte erlaubst, was passiert denn übrigens dann? > - Dann loggt man sich aus und loggt sich neu als User B ein. > > - Dann geht man in das B-Profil um es zu ändern und sieht plötzlich > Email und (als Sternchen) das Passwort vom A-Profil! Öffnet man den > Quelltext sieht man, dass eigentlich die Werte von B (also die > richtigen) in den Feldern stehen sollten, trotzdem werden die Werte > von A angezeigt (Passwort natürlich als Sternchen). Wenn man genau > hinschaut, sieht man beim Reload sogar, dass zuerst das B-Email und > eine 1/10 Sekunde später das A-Email erscheint. > > Ja, ich weiss, Unique Indices in den DB-Feldern würde zumindest ein > Speichern unterbinden, doch ist es dazu jetzt zu spät (33.000 > Member). Warum sollte es dafür zu spät sein? :-) Guck doch erstmal, wieviele Doppelungen es gibt und ob sich die beheben ließen... Laß Dich nicht von der Zahl 33.000 abschrecken. Vielleicht hast Du ja nur 300 Doppelungen. Es können natürlich auch ein paar Tausend sein, aber guck erstmal. Und eventuell fällt Dir ja doch eine Lösung ein. > Was kann man da tun? Also wenn Du das Problem eingrenzen und ermitteln kannst, wie ein solcher Formular-Cache im FF und IE funktioniert, dann findet sich bestimmt eine Lösung. Annahme 1: Der Formular-Cache würde die Formularwerte auf der Basis einer URL speichern. In diesem Fall würde es vielleicht reichen, einen benutzerspezifischen Parameter in die URL einzubauen. Annahme 2: Du findest keinen direkten Anhaltspunkt. Dann könntest Du versuchen, die Formularfelder benutzerspezifisch zu benennen, z.B. durch das Einbauen der Benutzer-ID in den Feldnamen. Das ginge z.B. so: <input type="text" name="irgendwas[23]" ...>, wobei 23 die Benutzer-ID wäre. Dann könntest Du im PHP-Skript anschließend $_REQUEST['irgendwas']['23'] in $_REQUEST['irgendwas'] umsetzen und könntest ganz bequem mit den Werten weiterarbeiten. Die Benutzer-ID käme nur beim Einsetzen der Feldnamen ins Spiel und würde anschließend nach der Parameter-Übergabe sofort wieder entfernt. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive