Alex Sommer: Wirklich "unique" ID erzeugen

Hallo,

ich will meine Messages in einer Community nicht öffentlich mit einer fortlaufenden ID versehen, sondern es soll nach außen nur eine Art Hash zu sehen sein (z.B. message.php?which=Ng2cMZbzInc)

Wie kann ich so eine unique "Hash-ID" generieren? Mit uniqid()?

Mir geht es nur darum, dass 1000%ig nicht nochmal die gleiche ID generiert wird, weil sonst gibt es ja in der Datenbank Probleme...

Danke,
Alex

  1. Mahlzeit Alex Sommer,

    Mir geht es nur darum, dass 1000%ig nicht nochmal die gleiche ID generiert wird, weil sonst gibt es ja in der Datenbank Probleme...

    mache Tabelle
    mache Spalte Unique-ID in Tabelle
    mache Spalte Unique-ID UNIQUE

    wiederhole
      generiere Unique-ID
      trage Unique-ID in Tabelle ein
    bis eintragen geklappt hat

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Mir geht es nur darum, dass 1000%ig nicht nochmal die gleiche ID generiert wird, weil sonst gibt es ja in der Datenbank Probleme...

    Versuchs mal mit dem hier:

    $id = mktime();

    Die ist nie gleich, denn die Zeit bleibt ja nicht stehen ;).

    1. Hi,

      $id = mktime();

      Die ist nie gleich, denn die Zeit bleibt ja nicht stehen ;).

      Aber ich wette, daß für alle 1000 User die gleiche Zeit gilt (die des Servers), und sich weder User, noch Server getrennt in Paralleluniversen befinden (auch wenn es diesbezügl. Theorien gibt). ;)

      Gruß, Cybaer

      --
      Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
      (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)
    2. Hello,

      Versuchs mal mit dem hier:

      $id = mktime();

      Die ist nie gleich, denn die Zeit bleibt ja nicht stehen ;).

      Kommt darauf an, wieviele Requests innerhalb einer Quante eingehen...

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
  3. ich will meine Messages in einer Community nicht öffentlich mit einer fortlaufenden ID versehen, sondern es soll nach außen nur eine Art Hash zu sehen sein (z.B. message.php?which=Ng2cMZbzInc)
    Wie kann ich so eine unique "Hash-ID" generieren? Mit uniqid()?
    Mir geht es nur darum, dass 1000%ig nicht nochmal die gleiche ID generiert wird, weil sonst gibt es ja in der Datenbank Probleme...

    Um auch Kollisionen zu vermeiden, die bei Digests, wenn auch selten, so doch möglich sind, musst du Zähler und Digest kombinieren.

    Alles eine Frage, was du mit 1000% meinst.

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>     ><o(((°>
       <°)))o><                      ><o(((°>o
    1. Um auch Kollisionen zu vermeiden, die bei Digests, wenn auch selten, so doch möglich sind, musst du Zähler und Digest kombinieren.

      da ist es doch wesentlich einfacher, ekkis vorschlag zu befolgen:

      irgend einen hash erzeugen und diesen in die datenbank einfügen (feldinhalt muss natürlich unique sein): bei erfolgsmeldung hats geklappt, bei misserfolg die fehlermeldung auswerten (wenn die fehlermeldung besagt, dass der wert eindeutig sein muss, einfach einen neuen hash generieren und los