Register und Login

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

  • Register und Login

    Hi Leutz,
    also, ich habe folgendes Problem.
    Ich habe ein Script geschrieben, mit dem Daten, die ein User in textareas einträgt, in eine SQL Datenbank einträgt.
    Funktioniert ja alles schön und gut.
    Nur, beim login möchte ich, dass der Benutzername, sowie das pw, dass im loginscript in inputs eingegeben wird, in der tabelle der Datenbank gesucht wird, und die passende ID des Users ausgelesen wird, und dass wenn die id = 0 ist, dann klar ist, das der User nicht registriert ist, und sich nicht einloggen darf.
    Alles geht, bis auf eines. Wie generiere ich eine neue id ?
    Ich habe mir gedacht, dass die höchste id in der tabelle ausgelesen wird, und dann um 1 erhöht wird...doch wie geht das ?
    Hier die 2 scripts von mir :

    register.php :
    PHP-Code:
    <?php
        
      
    if (!isset($_POST['post_register']))
      {
        echo 
    "<table width=\"382\"><form action=\"index.php?mitte=register\" method=\"POST\">";
        echo 
    "<tr><th colspan=\"2\">New Member</th></tr>";
        echo 
    "<tr><td>Nick:* </td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"nick\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Password:*</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"pw\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Repeat:*</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"pw2\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>E-Mail:*</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"email\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Realname:*</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"realname\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>MSN Messenger:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"msn\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>ICQ:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"icq\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Website:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"website\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Location:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"location\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Hobby:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"hobby\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Occupation:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"occupation\" size=\"25\"></td></tr>";
        echo 
    "<input type=\"hidden\" name=\"post_register\" value=\"gesendet\">";
        echo 
    "<tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" class=\"button\" value=\"Register\" >&nbsp;<input type=\"reset\" class=\"button\" value=\"Reset\" ></td></tr>";
        echo 
    "</form></table>";
      }
      else
      {
        
    $ok 1;
        
    $ok2 1;
        
    $ok3 1;
        
    $ok4 1;
        if (
    $_POST['nick'] == ""$ok 0;
        if (
    $_POST['pw'] == ""$ok 0;
        if (
    $_POST['pw2'] == ""$ok 0;
        if (
    $_POST['email'] == ""$ok 0;
        if (
    $_POST['realname'] == ""$ok 0;

        if (
    $_POST['pw'] != $_POST['pw2']) $ok3 0;
        
        
    $db = @MYSQL_CONNECT("localhost","root","Admin")
          or die(
    "Fehler beim Verbinden mit der Mysqldatenbank! (Connect)");
        
    $db_select MYSQL_SELECT_DB("nksweb")
          or die(
    "Fehler beim Verbinden mit der Mysqldatenbank! (Select DB)");
        
    $sql "select nick from user;";
        
    $result mysql_query($sql)
          or die(
    "Fehler beim Überprüfen des Users!");

        while (
    $member mysql_fetch_array($result))
        {
          if (
    $_POST['nick'] == $member['nick'])
          {
            
    $ok4 0;
            break;
          }
        }
        
    MYSQL_CLOSE($db);

        if (
    $ok == || $ok3 == || $ok4 == 0)
        {
          echo 
    "<table width=\"382\"><form action=\"index.php?mitte=register\" method=\"POST\">";
          echo 
    "<tr><th colspan=\"2\">New Member</th></tr>";
          if (
    $ok == 0)
          {
            echo 
    "<tr><td colspan=\"2\" align=\"center\"><font color=\"#EE0000\">Fields with * are required</font></td></tr>";
          }
          if (
    $ok2 == 0)
          {
            echo 
    "<tr><td colspan=\"2\" align=\"center\"><font color=\"#EE0000\">Wrong Password</font></td></tr>";
          }
          if (
    $ok3 == 0)
          {
            echo 
    "<tr><td colspan=\"2\" align=\"center\"><font color=\"#EE0000\">Wrong Password</font></td></tr>";
          }
          if (
    $ok4 == 0)
          {
            echo 
    "<tr><td colspan=\"2\" align=\"center\"><font color=\"#EE0000\">Nick already in Use</font></td></tr>";
          }
        echo 
    "<table width=\"382\"><form action=\"index.php?mitte=register\" method=\"POST\">";
        echo 
    "<tr><th colspan=\"2\">New Member</th></tr>";
        echo 
    "<tr><td>Nick:* </td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"nick\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Password:*</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"pw\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Repeat:*</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"pw2\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>E-Mail:*</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"email\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Realname:*</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"realname\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>MSN Messenger:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"msn\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>ICQ:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"icq\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Website:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"website\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Location:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"location\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Hobby:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"hobby\" size=\"25\"></td></tr>";
        echo 
    "<tr><td>Occupation:</td><td>";
        echo 
    "<input class=\"textbox\" type=\"text\" name=\"occupation\" size=\"25\"></td></tr>";
        echo 
    "<input type=\"hidden\" name=\"post_register\" value=\"gesendet\">";
        echo 
    "<tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" class=\"button\" value=\"Register\" >&nbsp;<input type=\"reset\" class=\"button\" value=\"Reset\" ></td></tr>";
        echo 
    "</form></table>";
        }
        else
        {

          
    $db = @MYSQL_CONNECT("localhost","root","Admin")
            or die(
    "Fehler beim Verbinden mit der Mysqldatenbank! (Connect)");
          
    $db_select MYSQL_SELECT_DB("nksweb")
            or die(
    "Fehler beim Verbinden mit der Mysqldatenbank! (Select DB)");
            
          
    //Hier werden die Variablen für den Datenbankeintrag definiert"  
          
    $reg_id "'1'"//hier müsse anstelle von "1" die schleife stehen.
          
          
    $reg_nick "'".$_POST['nick']."'";
          
          
    $reg_pw "'".$_POST['pw']."'";
          
          
    $reg_email $_POST['email'];
          if (
    $reg_email != ""$reg_email "'".$reg_email."'";
          else 
    $reg_email "null";

          
    $reg_realname "'".$_POST['realname']."'";
                
          
    $reg_msn $_POST['msn'];
          if (
    $reg_msn != ""$reg_msn "'".$reg_msn."'";
          else 
    $reg_msn "null";
          
          
    $reg_icq $_POST['icq'];
          if (
    $reg_icq != ""$reg_icq "'".$reg_icq."'";
          else 
    $reg_icq "null";

          
    $reg_website $_POST['website'];
          if (
    $reg_website != ""$reg_website "'".$reg_website."'";
          else 
    $reg_website "null";

          
    $reg_location $_POST['location'];
          if (
    $reg_location != ""$reg_location "'".$reg_location."'";
          else 
    $reg_location "null";

          
    $reg_hobby $_POST['hobby'];
          if (
    $reg_hobby != ""$reg_hobby "'".$reg_hobby."'";
          else 
    $reg_hobby "null";

          
    $reg_occupation $_POST['occupation'];
          if (
    $reg_occupation != ""$reg_occupation "'".$reg_occupation."'";
          else 
    $reg_occupation "null";

          
    $sql " INSERT INTO user VALUES(
              "
    .$reg_id.",
            "
    .$reg_nick.",
            "
    .$reg_pw.",
            "
    .$reg_email.",
            "
    .$reg_realname.",
            "
    .$reg_msn.",
            "
    .$reg_icq.",
            "
    .$reg_website.",
            "
    .$reg_location.",
            "
    .$reg_hobby.",
            "
    .$reg_occupation."
          );"
    ;


          
    $result mysql_query($sql)
            or die(
    "Fehler beim Ausführen des SQL-Befehls:<br>".$sql."<br>".mysql_errno()." - " .mysql_error()."<br>");
          
    //or die("Fehler beim Registrieren!");
          
    MYSQL_CLOSE($db);


          echo 
    "<table width=\"382\">";
          echo 
    "<tr><th>New Member</th></tr>";
          echo 
    "<tr><td>";
          echo 
    "Registration of ".$_POST['realname']." successfull.<br>";
          echo 
    "Your Acount Data has been mailed to You.<br>";
          echo 
    "You may now log Yourself in.";
          echo 
    "</td></tr>";
          echo 
    "</table>";
        }
      }
    ?>
    Login. php :
    PHP-Code:
    <?php
    /* Verbindung zu MySQL-Server aufbauen */
    mysql_connect("localhost""root""Admin");

    /* Datenbank auswählen */
    mysql_select_db("test");

    $ben_name "$user";
    $ben_pw "$pw";
    $id "";


    $result mysql_query("select id from user where name='$ben_name' AND pw='$ben_pw';");

    if (
    mysql_num_rows($result) == 1)
    {
        
    $id mysql_result($resultid);
    }

    if (empty(
    $id)){
        echo 
    "Benutzer nicht vorhanden, oder Passwort falsch!";
    }else{

    }
    ?>
    ...ich weiss, langer code ^^

  • #2
    Re: Register und Login

    Original geschrieben von Nks

    ...ich weiss, langer code ^^
    dann warte mal schön

    BTW: du darfst dein Posting auch editieren und en Code in PHP-Tag des Forums reinpacken. Aber bitte Code-Zeilen so umbrechen, daß man mit einer Auflösung 1024 x 768 beim Lesen nicht nach rechts scrollen muß. Danke.

    Kommentar


    • #3
      Also irgendwie schlummert mir da eine Idee mit einer while schleife im
      hinterkopf, doch ich weiss net genau, wie ich die schreiben soll.

      Kommentar


      • #4
        vielleicht solltest du auf http://dev.mysql.com/doc/mysql/de/SELECT.html mal nachlesen wie das mit WHERE funktioniert
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Kriege diese Fehlermelung beim versuchen mit einem RICHTIGEN User einzutragen.

          Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Apache2\htdocs\test.php on line 15

          Kommentar


          • #6
            wie sieht die abfrage aus?

            mach mal mysql_query(-...) or die(mysql_error()); (fetten teil ergänzen)

            wenn du von eintragen redest: du hast das WHERE nicht beim INSERT stehen oder?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              hab den or die(mysql_error()); eingebaut. Geht immer noch net, und zeigt auch keine andere fehlermeldung an.
              hier die neueste version des login.php:
              PHP-Code:
              <?php
              // Verbindung zu MySQL-Server aufbauen
              mysql_connect("localhost""root""Admin")or die("Verbindung kann nicht hergestellt werden!");

              // Datenbank auswählen
              mysql_select_db("nksweb")or die("Datenbank kann nicht gefunden werden!");

              // Variablen definieren
              $ben_name "$user";
              $ben_pw "$pw";
              $id "1";

              // Tabelle auslesen
              $ergebnis mysql_query("SELECT id FROM user WHERE nick='$ben_name' AND pw='$ben_pw';")or die(mysql_error());

              // Resultat überprüfen
              if (mysql_num_rows($ergebnis) == "$id")
                  {
                      
              $navil 'menu2';
                      
              $login 'menu1';
                      include (
              "index.php");
                  }

              else
                  {
                      echo 
              "Benutzer nicht vorhanden, oder Passwort falsch!";
                  }
              ?>
              Und where steht net im insert...
              Zuletzt geändert von Nks; 08.09.2004, 10:50.

              Kommentar


              • #8
                hab den fehler gefunden.
                Die ID ist keine Zahl, sonder #+Zahl, darum gings nicht.
                Habs geändert :
                PHP-Code:
                <?php
                // Verbindung zu MySQL-Server aufbauen
                mysql_connect("localhost""root""Admin")or die("Verbindung kann nicht hergestellt werden!");

                // Datenbank auswählen
                mysql_select_db("nksweb")or die("Datenbank kann nicht gefunden werden!");

                // Variablen definieren
                $ben_name "$user";
                $ben_pw "$pw";

                // Tabelle auslesen
                $ergebnis mysql_query("SELECT id FROM user WHERE nick='$ben_name' AND pw='$ben_pw';")or die("fuck off");
                    echo 
                $ergebnis;
                    
                // Resultat überprüfen
                if (mysql_num_rows($ergebnis) == "")
                    {
                        echo 
                "Benutzer nicht vorhanden, oder Passwort falsch!";
                    }    
                else
                    {
                        
                $navil 'menu2';
                        
                $login 'menu1';
                        include (
                "index.php");
                    }




                ?>

                Kommentar

                Lädt...
                X