Ankündigung

Einklappen
Keine Ankündigung bisher.

Benutzername

Einklappen

Neue Werbung 2019

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

  • Benutzername

    Guten Tag,

    Ich habe folgendes Problem:
    ich möchte ein Login bauen, aber da sich die Bentzer die sich anmelden gegenseitig sehen können(also die Benutzernamen) ist es wichtig, dass nicht 2 Leute den gleichen Namen haben.
    Weiters kein Problem,
    dann habe ich mir aber Überlegt, was ist jetzt wenn zum Beispiel jemand zweites käme sich als carrera registriert und Mist baut, und ich dann hange...(man beachte den 'C'!)

    Also will ich eine Überprüfung machen, welche in einer MySQL-DB sich alle Usernames holt, sie vergleicht mit dem eingeben und schaut, hat jemand den gleichen Namen, nur in andere Schreibweise(Gross-kleinschreibung)....

    Hoffe ihr versteht mein anliegen....

    Danke euch scho jetzt!
    Gruss,


  • #2
    du machst eine Abfrage "SELECT name FROM users WHERE name LIKE 'xxx' LIMIT 1"

    Wenn du einen Rückgabewert erhälst, gibt es den User bereits.

    Kommentar


    • #3
      eine andere Variante wäre, beide Seiten durch tolower() beim Vergleich zu schicken

      Kommentar


      • #4
        Oder einen unique index auf das Feld in der Datenbanktabelle legen. Dann lässt die Datenbank keine zwei gleichen Einträge zu und Du bist damit auch gleich das (geringe) Problem mit race conditions los.
        Welche Zeichen als gleich betrachtet werden, hängt von der Tabellendefinition ab. Bei MySQL zum Beispiel von der zugeordneten collation.

        Kommentar


        • #5
          Eine einfache select count abfrage reicht da aus. Dann vergleicht man einfach den Wert der in dem Textfeld des Formulars drin steht mit der Datenbank und schon passt es!

          Zum Beispiel so

          $bildname ist die Variable aus einem textfeld. Vorher natürlich mit allmöglichen ssachen geprüft also auch auf register globals geachtet nur wollte ich ja nicht den kompletten code senden

          PHP-Code:
          <?php
          $sqlbefehl 
          ="Select Count(*) As anzahl_bilder From $tab_bild where bild='".$bildname."'";
            
          $preufe_bild mysql_query($sqlbefehl)or die(mysql_error());
            
          $row_bild mysql_fetch_array($preufe_bild);
           
            if(
          $row_bild['anzahl_bilder'] >0)
            {
             echo 
          msgBox("Der Bildname existiert bereits!".$link."");
             exit();
            }
          ?>
          Das ist noch etwas älter darum auch der * da drin. Aber das funktioniert!
          Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
          http://www.lit-web.de

          Kommentar


          • #6
            Dann hat man aber das Problem mit race conditions. Bei einer Forenanmeldung ist die Wahrscheinlichkeit vielleicht sehr gering. Aber wozu diese geringe Wahrscheinlichkeit in Kauf nehmen, wenn man sie mit einem unique index vollständig und ohne Mehraufwand vermeiden kann?

            Kommentar

            Lädt...
            X