kostenloser Webspace werbefrei: lima-city


Kurzhilfe bei PHP Abfrage

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    n**************y

    Hier in dem Loginscipt ist noch ein Fehler in der mit dicken Schrift makierten Abfrage.
    Diese sollt eigentlich wenn das Passwort und der Nickname übereinstimmen zur intern.php weiterleiten.
    Jedesmal wenn ich Dateneingebe werde ich auf formular.php?fehler=1 weitergeleitet.
    Die Datenbankverbidung habe ich in meinem Script richtig angegeben !

    Kann da jemand helfen ?
    Nachdem die Frage geklärt ist kann das Thema direkt geschlossen werden !°

    <?php  
    // Session starten 
    session_start (); 
    
    // Datenbankverbindung aufbauen
    
    $connectionid = mysql_connect("************************");  
    if (!mysql_select_db ("**********", $connectionid))
    {  
      die ("Keine Verbindung zur Datenbank");  
    }  
    
    $sql = "SELECT ".  
        "Id, Nickname, Nachname, Vorname ".  
      "FROM ".  
        "benutzerdaten ".  
      "WHERE ".  
        "(Nickname like '".$_REQUEST["name"]."') AND ".  
        "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
     
    $result = mysql_query ($sql,$connectionid);  
    [b]
    if (mysql_num_rows ($result) > 0)  
    {  
      // Benutzerdaten in ein Array auslesen.  
      $data = mysql_fetch_array ($result);  
    
      // Sessionvariablen erstellen und registrieren  
      $_SESSION["user_id"] = $data["Id"];  
      $_SESSION["user_nickname"] = $data["Nickname"];  
      $_SESSION["user_nachname"] = $data["Nachname"];  
      $_SESSION["user_vorname"] = $data["Vorname"];  
    
      header ("Location: intern.php");  
    }  
    else  
    {  
      header ("Location: formular.php?fehler=1");  
    }  
    [/b]
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. versuche es mal so:

    $sql = "SELECT ".  
        "Id, Nickname, Nachname, Vorname ".  
      "FROM ".  
        "benutzerdaten ".  
      "WHERE ".  
        "(Nickname LIKE".$_REQUEST["name"].") AND ".  
        "(Kennwort = ".md5 ($_REQUEST["pwd"]).")";


    allerdings halte ich die abfrage mit nickname LIKE xx für falsch, da du dich dann auch einloggen kannst, wenn zb ein user "n9aces" heist und du nur "aces" eingibst. deswegen wäre an dieser stelle nickname='xxx' wohl richtiger.

    mfg
  4. Autor dieses Themas

    n**************y

    Das Problem ist ja das immer "Else" ausgewählt wird bei der 2ten Bedinnung !
    Jeder versucht vom einloggen ist Fehlgeschlagen , es wird immer ("Location: formular.php?fehler=1"); das ausgeführt und nicht der aufruft von intern.php !
    Das ist ja leider das Problem :(

    $sql = "SELECT ".  
        "Id, Nickname, Nachname, Vorname ".  
      "FROM ".  
        "benutzerdaten ".  
      "WHERE ".  
        "(Nickname like '".$_REQUEST["name"]."') AND ".  
        "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
     
    $result = mysql_query ($sql,$connectionid);  
    
    if (mysql_num_rows ($result) > 0)  
    {  
      // Benutzerdaten in ein Array auslesen.  
      $data = mysql_fetch_array ($result);  
    
      // Sessionvariablen erstellen und registrieren  
      $_SESSION["user_id"] = $data["Id"];  
      $_SESSION["user_nickname"] = $data["Nickname"];  
      $_SESSION["user_nachname"] = $data["Nachname"];  
      $_SESSION["user_vorname"] = $data["Vorname"];  
    
      header ("Location: intern.php");  
    }  
    else  
    {  
    // 2Te Bedinnung !! <------------------------------------------------------
      header ("Location: formular.php?fehler=1");  
    }  
    
    ?>
  5. mach mal
    var_dump($result)
    vor das if rein
    wenn dann dort
    bool(false)
    gibt es zwei möglichkeiten:
    1. die abfrage ist falsch
    2. du hast daten eingegeben die in der datenbank nicht existieren

    mfg
  6. Autor dieses Themas

    n**************y

    Nachdem ich das eingefügt habe kommt jetzt folgende Fehlermeldung die vorher nicht da war :

    resource(3) of type (mysql result)
    Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/n9aces-community/html/login.php:23) in /home/webpages/lima-city/n9aces-community/html/login.php on line 40

    Ohne

    var_dump($result)

    Springt er wie gesagt immer zum Else , das heißt immer " Daten falsch eingegeben ".

    Die Datensätze bestehen zu 100% in der Datenbank !

    Ich denke es muss was hiermit zu tuen haben , nur ich weiß nicht was diese Abfrage jetzt wirklich bewirkt !

    if (mysql_num_rows ($result) > 0)

    hoffe es klappt bald :/
  7. Ganz allgemein zum Debugging (einen Fehler kann ich so auch nicht sehen):

    Probier' doch mal - nur zum Testen - was ist, wenn Du die Bedingung für das Paßwort wegläßt. Und laß' Dir dann mal (im if-, nicht else-Zweig) sowohl das Feld kennwort aus der Datenbank als auch den MD5-Wert des übermittelten Paßwortes ausgeben (dazu mußt Du mal das select vorübergehend erweitern). Ich vermute, da stimmt irgendwas mit der "Kodierung" nicht.

    Wenn Dir auch das noch nicht weiter hilft: laß Dir mal ganz einfach die beiden Übergabewerte ausgeben - nicht, daß da irgendwelche Tippfehler in den Parameter-Namen im Weg stehen und garnichts ankommt.
  8. Moin. Ersetze bitte like durch =. Weiterhin, ersetze mysql_query($sql) durch mysql_query($sql) or die(mysql_error());. Zudem, beachte, dass MySQL-Tabellennamen case-sensitiv sind, also Vorname nicht das selbe wie vorname ist.
  9. Autor dieses Themas

    n**************y

    nikic ich habe es gemacht so wie du gesagt hast :( , es hat leider nicht geholfen !

    deunan dein tipp hilft leider auch nicht wenn ich alle werte abrufe stimmen sie mit der datenbank überein das ist merkwürdig ~~
    keiner verbsserung:frown:

    kann man auch eine andere bedinnung schreiben für den login ?
    wenn ja wie ?

    hoffe iwann klappt es :/
  10. Kannst du uns bitte ein "SHOW CREATE TABLE benutzerdaten" geben? (Gibt im PHPmyAdmin im SQL-Tab deiner Tabelle ein :)
  11. Autor dieses Themas

    n**************y

    Das wird ausgegeben ,

    benutzerdaten CREATE TABLE `benutzerdaten` (\n  `Id` int(11) NOT ...


    ich kann damit leider nix anfangen , hier ist mal der sql code für die tabelle :

    INSERT INTO
    benutzerdaten ('Nickname', 'Kennwort', 'Nachname', 'Vorname')
    VALUES ('x','x','x','x')


    So habe ich die Datensätze eingetragen ...

    Und so die Tabelle erstellt :

    CREATE TABLE benutzerdaten ( 
      Id Int(11) NOT NULL auto_increment, 
      Nickname VarChar(50) NOT NULL default '', 
      Kennwort VarChar(50) NOT NULL default '', 
      Nachname VarChar(50) NOT NULL default '', 
      Vorname VarChar(50) NOT NULL default '', 
      PRIMARY KEY (Id) 
    )



    Hoffe das hilft mir zu helfen :/
  12. flashmob-riedlingen

    flashmob-riedlingen hat kostenlosen Webspace.

    Also ich erkenn da auch keinen Fehler. Hast du dir schonmal $sql ausgeben lassen und in phpmyadmin ausprobiert?
  13. Autor dieses Themas

    n**************y

    Das ist auch alles ganz normal , voll komisch !
    Ich finde den Fehler irgendwie nciht ~~
  14. 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!