kostenloser Webspace werbefrei: lima-city


MySQL login klappt nicht ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Hallo

    Wo ist mein fehler, habe eine extra html für formular.


    <?php
    $verbindung = mysql_connect("mysql.lima-city.de", "USER....." , "Passwort")
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    
    mysql_select_db("db_....._1") or die ("Datenbank konnte nicht ausgewählt werden");
    
    $username = $_POST["username"];
    $passwort = $_POST["passwort"];
    $vorname = $_POST["vorname"];
    $nachname = $_POST["nachname"];
    $email = $_POST["email"];
    
    
    if($passwort != $passwort2 OR $username == "" OR $passwort == "")
        {
        echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
        exit;
        }
    $passwort = md5($passwort);
    
    $result = mysql_query("SELECT id FROM login WHERE username LIKE '$username'");
    $menge = mysql_num_rows($result);
    
    if($menge == 0)
        {
        $eintrag = "INSERT INTO login (Vorname, Nachname, E-Mail, Benutername, Passwort) VALUES ('$vorname', '$nachname', '$email', '$username', '$passwort' )";
        $eintragen = mysql_query($eintrag);
    
        if($eintragen == true)
            {
            echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>";
            }
        else
            {
            echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>";
            }
    
    
        }
    
    else
        {
        echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";
        }
    	
    ?>




    Im Browser steht "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 22
    Fehler beim Speichern des Benutzernames. Zurück"

    Vielen Dank
    Philip
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Die Fehlermeldung besagt dass die Abfrage des mysql_num_rows sprich "$result" keine vorhandene/korrekte MySQL -Quelle abfrägt ist. D.h. Irgendetwas stimmt in $result nicht. Also alles überprüfen und auch Syntax checken...
  4. versuche mal das ganze so zu lösen.
    mysql_query("SELECT id FROM login WHERE username LIKE '".$username."'");


    allerdings ist die query mit LIKE für ein login sowieso ungeeignet.
    angenommen ein user heist "franz", du gibst aber nur "anz" als login (mit dem passwort für franz) ein kommst du trozdem rein.
    besser wäre
    mysql_query("SELECT id FROM login WHERE username='".$username."'");


    mfg
  5. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Leider klappt es nicht

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 22
    Fehler beim Speichern des Benutzernames. Zurück
  6. rein syntaktisch ist die query richtig.
    vergewissere dich, dass die spalte 'id' in der tabelle login auch wirklich existiert...eventuell führe die Query mit testdaten in phpMyAdmin aus.

    edit: tabellennamen verlesen o.O

    mfg

    Beitrag zuletzt geändert: 10.2.2010 17:56:41 von syberpsace
  7. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    äh... die tabelle heißt "login"

    edit: Klappt aber immer noch nicht



    Beitrag zuletzt geändert: 10.2.2010 17:59:00 von philip-felder
  8. das kann garnich gehen.
    du prüfst ob die spalte username einen bestimmten wert enthält. die spalte müsste aber korrekterweise Benutzername heißen
    statt
    SELECT id FROM login WHERE username LIKE <username>

    also
    SELECT id FROM login WHERE Benutzername LIKE <username>


    achtund: anders als bei den schlüsselwörtern wie SeLecT und FroM (:D) kommt es bei den spaltennamen auf groß- und kleinschreibung an.

    mfg
  9. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Klappt leider immer noch nicht

    $result = mysql_query("SELECT id FROM login WHERE Benutzername='".$username."'");
    $menge = mysql_num_rows($result);


    P.S.: habe diese anleitung benutzt (nur halt angepasst)

    http://www.php-einfach.de/tuts_mysql_login.php
  10. //edit: mir fällt gerade etwas auf: Und zwar versuchst du oben die id aus der Tabelle login auszulesen. Allerdings hast du wohl gar keine Spalte mit dem Namen id wie man anhand von ""$eintrag" sehen kann...d.h. du solltest das folgendermaßen ändern:

    $result = mysql_query("SELECT Vorname FROM login WHERE Benutzername = '$username'");
    $menge = mysql_num_rows($result);


    Und
    eintrag = "INSERT INTO login (Vorname, Nachname, E-Mail, Benutzername, Passwort) VALUES ('$vorname', '$nachname', '$email', '$username', '$passwort' )";
    $eintragen = mysql_query($eintrag);


    Man beachte das fehlende z bei Benutzername...

    Oder fügst in die Tabelle login noch ein ID-Spalte ein und benutzt deine alte abfrage...



    Beitrag zuletzt geändert: 10.2.2010 18:26:13 von buechsdeluxe
  11. Das SQL-Kommando wurde von MySQL als "fehlerhaft" eingestuft:

    Entweder enthält es einen ungültigen Spalten- oder Tabellennamen, oder sonst irgendetwas. Füge einfach mal
    $err=mysql_error();
    hinter die Zeile mit Deinem Query ein und gib den String $err aus. Damit kannst Du Dir die MySQL-Fehlermeldung zeigen lassen!


    Beitrag zuletzt geändert: 10.2.2010 18:30:19 von cars-ten
  12. cars-ten schrieb:

    Entweder enthält es einen ungültigen Stalten oder Tabellennamen,...


    Eben, überprüfe ob deine Tabelle wirklich ein Spalte Names ID hat...siehe meinen letzten Beitrag...
  13. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Leider krige ich es nicht hin hier nochmal der code:


    <?php
    $verbindung = mysql_connect("mysql.lima-city.de", "USER....." , "passwort")
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    
    mysql_select_db("db_......._1") or die ("Datenbank konnte nicht ausgewählt werden");
    
    $username = $_POST["username"];
    $passwort = $_POST["passwort"];
    $vorname = $_POST["vorname"];
    $nachname = $_POST["nachname"];
    $email = $_POST["email"];
    
    
    if($passwort != $passwort2 OR $username == "" OR $passwort == "")
        {
        echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
        exit;
        }
    $passwort = md5($passwort);
    
    $result = mysql_query("SELECT Vorname FROM login WHERE Benutzername = '$username'");
    $err=mysql_error();
    $menge = mysql_num_rows($result);
    if($menge == 0)
        {
        $eintrag = "INSERT INTO login (Vorname, Nachname, E-Mail, Benutzername, Passwort) VALUES ('$vorname', '$nachname', '$email', '$username', '$passwort' )";
    $eintragen = mysql_query($eintrag);
    
        if($eintragen == true)
            {
            echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>";
            }
        else
            {
            echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>";
            }
    
    
        }
    
    else
        {
        echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";
        }
    	
    ?>


  14. Kommt eine Fehlermeldung? Wenn ja poste diese nochmal.

    Zeig mal noch deine Mysql-Tabelle. Also alle Spaltennamen + Datentyp.



    Beitrag zuletzt geändert: 10.2.2010 19:41:09 von buechsdeluxe
  15. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Hier die Fehlermeldung:

    "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 23
    Fehler beim Speichern des Benutzernames. Zurück"

    Tabellenname: login

    id int(10) UNSIGNED auto_increment
    Vorname varchar(150) latin1_swedish_ci
    Nachname varchar(150) latin1_swedish_ci
    E-Mail varchar(150) latin1_swedish_ci
    Benutername varchar(150) latin1_swedish_ci
    Passwort varchar(32) latin1_swedish_ci

    Hier das Formular:

    <form action="eintragen.php" method="post">
    Vorname:<br>
    <input type="text" size="24" maxlength="50"
    name="vorname"><br><br>
    
    Nachname:<br>
    <input type="text" size="24" maxlength="50"
    name="nachname"><br><br>
    
    E-Mail-adresse:<br>
    <input type="text" size="24" maxlength="50"
    name="email"><br><br>
    
    Benutzername:<br>
    <input type="text" size="24" maxlength="50"
    name="username"><br><br>
    
    Passwort:<br>
    <input type="password" size="24" maxlength="50"
    name="passwort"><br>
    
    Passwort wiederholen:<br>
    <input type="password" size="24" maxlength="50"
    name="passwort2"><br>
    
    <input type="submit" value="Anmelden">
    </form>



    Beitrag zuletzt geändert: 10.2.2010 19:40:57 von philip-felder
  16. Versuch es mal so:

    <?php
    $verbindung = mysql_connect("mysql.lima-city.de", "USER....." , "passwort")
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    
    mysql_select_db("db_......._1") or die ("Datenbank konnte nicht ausgewählt werden");
    
    $username = $_POST["username"];
    $passwort = $_POST["passwort"];
    $vorname = $_POST["vorname"];
    $nachname = $_POST["nachname"];
    $email = $_POST["email"];
    
    
    if($passwort != $passwort2 OR $username == "" OR $passwort == "")
        {
        echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
        exit;
        }
    $passwort = md5($passwort);
    
    $abfrage = "SELECT * FROM login WHERE Benutzername = '$username'";
    $result = mysql_query($abfrage);
    
    if(mysql_num_rows($result) != 0)
        {
          echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";
       }
    else
      {
      $eintrag = "INSERT INTO login (Id, Vorname, Nachname, E-Mail, Benutzername, Passwort) VALUES (' ', '$vorname', '$nachname', '$email',   '$username', '$passwort' )";
     $eintragen = mysql_query($eintrag);
      
        if($eintragen == true)
            {
            echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>";
            }
        else
            {
            echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>";
            }
      }	
    ?>



    Beitrag zuletzt geändert: 10.2.2010 19:50:12 von buechsdeluxe
  17. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Leider:


    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 23
    Fehler beim Speichern des Benutzernames. Zurück
  18. ich hab mein letzten beitrag nochmal geändert. Versuche es nochmal mit dem Code...
  19. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.


    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/philip-felder/html/Test/Neuer Ordner/eintragen.php on line 25
    Fehler beim Speichern des Benutzernames. Zurück
  20. Hmm komisch, hast du ICQ?

    Ich erstelle mal eben eine identische Tabelle bei mir und teste das dann alles...
  21. Autor dieses Themas

    philip-felder

    philip-felder hat kostenlosen Webspace.

    Nein aber Skype!
    Kann aben icq runterladen

  22. 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!