kostenloser Webspace werbefrei: lima-city


Prüfung doppelter Einträge in Datenbank

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Hallo,

    ich tüftel jetzt schon den halben Tag an einem Registrierungs-Script. Zwischenzeitlich ging er auch, jetzt zeigt er mir Fehler bei der Datenbankanfrage an. Zuerst hatte ich prüfen lassen, ob der Vorname bereits vergeben ist. Dabei hat alles wunderbar geklappt. Dann fiel mir ein, dass es ja durchaus auch doppelte Vornamen geben kann. Also wollte ich nun auch noch nach dem Nachnamen prüfen und erst wenn beides nicht vorhanden ist, soll die Registration abgeschlossen werden. Aber dennoch stehe ich vor dem Problem, dass das Script nur dann weiterlaufen wird, wenn der Vorname noch nicht vergeben ist.

    Wie kann ich also Vor- und Nachnahmen in Kombination mit nur einer einzigen Anfrage prüfen lassen?

    Ich hoffe zusätzlich auch, dass sich dann bei Datenbankanfrage-Problem in Luft auflösen wird. Da es ja vor dem erneuten Umbasteln problemlos funktionierte.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage


  3. [...]und erst wenn beides nicht vorhanden ist, soll die Registration abgeschlossen werden. [...]

    Ist das nicht ziemlich ungünstig? So könnte sich zwar ein Peter Müller anmelden, aber danach kein Peter Meyer mehr. Ich denke du willst, eher, dass die Kombination von Vor- und Nachname noch nicht vorhanden ist, oder?
    Das müsste mit einer einfach Abfrage zu lösen sein:
    <?
    $query=\"SELECT
             vorname,
             nachname
            FROM
             `tabelle`
            WHERE
             nachname=\'$nachname\'
            AND
             vorname=\'$vorname\'
            \";
    $res=mysql_query($query);
    if(mysql_num_rows($res)!=0)
    {
     // nicht registrieren
    }
    ?>
  4. Ich hab schon eins wadde:

    ...
    <?php
    if (trim ($_REQUEST[\'user\'])&&($_REQUEST[\'pass1\'])&&($_REQUEST[\'pass2\'])&&($_REQUEST[\'email\'])){
    if (ereg(\"([a-z0-9.-_]{1,})([@])([a-z]{1,10})([.])([a-z]{2,4})\",$_POST[\'email\'])){
    if (ereg(\"([a-zA-Z0-9_-]{3,})\",$_POST[\'user\'])) {
    if ($_POST[\'pass1\'] == $_POST[\'pass2\']){
      @mysql_connect(HOST,USER,PASS);
      mysql_select_db(DATA);
      $sql = mysql_query(\"SELECT user FROM account WHERE user=\'\".$_POST[\'user\'].\"\'\");
      $sq = mysql_fetch_assoc($sql);
      $sql = mysql_query(\"SELECT email FROM account WHERE email=\'\".$_POST[\'email\'].\"\'\");
      $sqa = mysql_fetch_assoc($sql);
    
    if(strtolower($_POST[\'user\']) != $sq[\'user\']){
    if($_POST[\'email\'] != $sqa[\'email\']){
    
    $user = strtolower(htmlentities($_POST[\'user\']));
    $userorg = htmlentities($_POST[\'user\']);
    $pass = md5($_POST[\'pass1\']);
    $email = htmlentities($_POST[\'email\']); 
    
    mysql_query(\"INSERT INTO account
          (user,passwort,email,recht)
      VALUES
          (\'\".$user.\"\',
           \'\".$pass.\"\',
           \'\".$email.\"\',
            2);\");
    
    echo \"<br>Ihr Account wurde registriert. Sie erhalten in kürze eine Mail von uns.<br>\";
    }else{
      echo \"Du darfst nur einen Account anlegen.\";
    }
    }else{
      echo \"Username schon vorhanden\";
    }
    }else{
      echo \"Passwörter stimmen nicht überein\";
    }
    }else{
      echo \"Leider d&uuml;rfen nur folgende Zeichen benutzt werden: a-z,A-Z,0-9,-,_<br>Der Username muss mindestens 3 Zeichen haben.\";
    }
    }else{
      echo \"Eine falsche Email wurde angegeben.\";
    }
    }else{
      echo \"Tragen sie alle felder aus\";
    }
    ?>


    Musste mal gucken was du davon gebrauchen kann.

    Wenn jemand da ein Fehler findet bitte melden wäre zu nett.

    EDIT: da war einer schneller


    Beitrag geändert: 17.3.2008 21:20:09 von thevamp
  5. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Hab ich nicht geschrieben, dass ich die Komibination von Vor- und Nachnamen meinte? Hm, vielleicht habe ich mich ungünstig ausgedrückt. Aber verstanden hat man es ja doch, wie schön. Danke, ich werde mir beides einmal anschauen. Mal sehen, ob ich damit was anfangen kann ;)
  6. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Jetzt habe ich das erste Script getestet und die Fehlermeldung, die ich vorhin hatte, ist tatsächlich verschwunden (woran auch immer das gelegen haben mag). Nun sagt mir das Script jedoch, dass der Name bereits vorhanden ist, obwohl er noch nicht in der Datenbank steht. Wie das?
  7. k*****r

    Welche fehlermeldung bekommst du denn? Es trägt vlt. nicht zur lösung bei aber ist es nicht sinnvoller schon aus prinzip zu ermöglichen das zwei verschiedene user mit selbem namen sich anmelden können. Hast du denn keinen primary key vergeben, ich kann mir nicht wirklich genau vorstellen wo jetzt der fehler liegt.

    mfg kalimor
  8. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Nun, ich glaube, ich habe das Problem bereits gefunden ... hab in der if-Schleife die Registrierung reingesetzt und bei else den Text bei doppeltem Benutzernamen.

    Aber nun erscheint beim Eintragen in die Datenbank wieder der gleiche Fehler wie zuvor: Fehler bei der Datenbankanfrage. Obwohl das vorhin super funktionierte und ich an dem Teil nicht geändert habe.

    Zu deiner Frage: Es sind ja keine \"realen\" Namen in dem Sinne, mit denen man sich registriert, sondern der Benutzername besteht aus zwei Teilen. Hier eben Vor- und Nachname genannt zum besseren Verständnis ... aber anscheinend sorgt das noch mehr für Verwirrung. Ich kann das aber leider auch nicht anders bzw. besser erklären, da meine eigenen Gedankengänge momentan diesbezüglich auch sehr wirr sind.
  9. Naja wenigstens hast es geschafft hoffe du hast die Prinzipien in meinem Skript verstanden, da die ereg Funktion sau verwirrend ist. (für mich damals) Ich würde jedem empfehlen sie erst mal weg zulassen.
  10. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Geschafft? Nein, es funktioniert ja noch nicht so wie es sollte ... leider. Aber ich glaube, das hat nichts mehr mit diesem Script zu tun, dass es vor- und nachnamen überprüft. Ich weiß nur auch nicht, wo ich den Fehler sonst noch suchen soll. Ich glaube, ich muss einfach nochmal von vorne anfangen, da ich es ja vorher schon geschafft hatte, dass die Registration durchgeführt wird.
  11. nein schick mir den Code per pm dann überprüf ich ihn mal kannst ja alles was wichtig ist löschen und für alternativ wörter ersetzen. ;)

    Man muss ja nicht alles nochmal anfangen.

    Beitrag geändert: 17.3.2008 21:55:39 von thevamp
  12. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Doch, ich glaube, das wäre die einzige Möglichkeit. Zumal ich mich dann noch mal genauer damit befassen kann. Vielleicht fallen mir da noch die ein oder andere Verbesserung ein. Und eine Sache müsste da eh noch mal überarbeitet werden. Das macht mir nichts aus.

    Sollte ich dann immer noch nicht klar kommen bzw. der Fehler immer noch auftauchen, komme ich gerne auf dein Angebot zurück.

    Und wie heißt es doch so schön: Aus seinen Fehlern kann man nur lernnen ;)
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!