Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_insert_id liefert falsche ID

Einklappen

Neue Werbung 2019

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

  • mysql_insert_id liefert falsche ID

    Hi.

    Ist vermutlich ne ganz banale Erklärung, aber irgendwie komme ich gerade nicht dahinter (brauche vermutlich erstmal einen Kaffee).

    Ich hab éinen Login Bereich, wo man sich registrieren muss und dann eine Aktivierungsmail zugeschickt bekommt. Darin befindet sich ein Link mit 2 Parametern (id und aktivierungscode)und durch Klick auf diesen wird der Account freigeschaltet! Problem: bisher habe ich mit mysql_insert_id gearbeitet um die zuletzt eingetragene ID zu ermitteln und bei 2-3 Usern lief das ohne Probleme, aber sobald 40-50 Leute den Registrierungsprozess durchführen, werden willkürliche ID's aus meiner member Tabelle von anderen Usern gezogen und als GET Parameter mit dem Aktivierungscode übergeben!?! Warum?

    Ich hab es jetzt umständlich gelöst und prüfe über den Login Namen, welche ID dafür vorhanden ist (login Name ist einzigartig), aber wirklich schön ist das nicht! Danke schon mal für eure Anmerkungen!

    Wolf29

    P.S. Verwende PHP 5 & MySQL
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.


  • #2
    also: mysql_last_insert_id() liefert die letzte id, die von deiner mysql-verbindungen eingetragen wurde.
    d.h, falls dein projekt oo aufgebaut ist solltest du für jeden user eine neue db-verbindung aufbauen. dann sollte es auch zu keinen problemen komme.
    nutze das ganze auch auf seite mit paar besuchern und mir ist bisher kein solcher "fehler" aufgefallen.
    Aus dem Forum hier:
    http://www.php.de/datenbanken/60543-...en-lassen.html
    Post von Creator:
    Nein!

    Bin mir jetzt nicht 100% sicher, aber ich meine das diese funktion Abhängig von der Verbindungkennung ist. Daher kann das nicht passieren.

    Kannst du auch nachlesen:
    http://dev.mysql.com/doc/refman/5.1/...functions.html
    Under Construktion

    Kommentar


    • #3
      Ah...danke. Hatte über php.net nichts hilfreiches in der Doku dazu gefunden. Bisher hatte ich auch noch nie Probleme, aber Gestern wurde die Oberfläche freigeschaltet und innerhalb ner halben Stunde haben sich um die 50 Leute angemeldet und da kam es zum vertauschen der ID's! Wirklich suspekt. Danke für den Link!

      Wolf29
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        falls dein projekt oo aufgebaut ist
        Was hat das mit oop zu tun. Ober procedural oder Oop, jeder User hat eigentlich immer eine eigene Verbindung, weil sie ja an unterschiedlichen Clients sitzen. HTTP ist zustandslos, es kann sich nichts merken, schon gar nicht über Usergrenzen hinweg.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar

        Lädt...
        X