Ankündigung

Einklappen
Keine Ankündigung bisher.

Login funktioniert nicht?!?

Einklappen

Neue Werbung 2019

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

  • Login funktioniert nicht?!?

    Hallo Leute,
    ich habe ein Problem.
    Und zwar hab ich eine Registrierung mit Login erstellt, aber der Login funktioniert nicht.

    Er zeigt mir an : "undefined index"

    Hier die Codes:


    login.html:
    Code:
    <html>
    <head>
    <title>Login | MinePlay</title>
    </head>
    <body>
    
    <form action="login.php" method="post">
    Dein Nutzername:<br>
    <input type="text" size="24" maxlength="50"
    name="username"><br><br>
    
    Dein Passwort:<br>
    <input type="password" size="24" maxlength="50"
    name="passwort"><br>
    
    <input type="submit" value="Abschicken">
    </form>
    
    <P>Noch nicht dabei?</p><a href="register.html">Jetzt registrieren!</a>
    
    </body>
    </html>

    login.php:
    PHP-Code:
    <?php
    session_start
    ();
    //Datenbankverbindung
    mysql_connect("localhost""root""") or die("Fehler bei der Verbindung mit der Datenbank.");
    mysql_select_db("logindb");
    //Loginprozess
    $_GET['nutzername'];
    $_GET['passwort'];
    $nutzername $_POST['nutzername'];
    $passwort $_POST['passwort'];

    if(
    $nutzername != "" && $passwort != "") {
        
    $nutzername mysql_real_escape_string($nutzername);
        
    $passwort md5($passwort);
        
    //Daten aus Datenbank holen
        
    $selectUserData mysql_query("SELECT * FROM login WHERE nutzername = '{$nutzername}'");
        
    //Ist der Benutzer Überhaupt vorhanden?
        
    if(mysql_num_rows($selectUserData) > 0){
            
    //Aufarbeiten der Datenbankwerte
            
    $dbData mysql_fetch_assoc($selectUserData);
            if(
    $dbData['passwort'] == $passwort)
            if(
    $dbData['nutzername'] == $nutzername){
                
    //Weiterleitung
                
    header("Location: http://localhost/web/Login/index.html");
                exit;
            }
            else{
                
    $output "Falsches Passwort";
            }
        }
        else{
            
    $output "Der Benutzer ist nicht vorhanden";    
        }
    }
    else{
        
    $output "Bitte f&uuml;llen Sie alle Felder aus";
    }
    exit;
    ?>
    Könnt ihr mir helfen?

    Danke im voraus!


    LG Ristorix


  • #2
    Hallo und willkommen im Forum.

    Erstmal, bunter Text ist unnötig, so groß muss der auch nicht sein.
    Zweitens, immer die ganze Fehlermeldung posten.

    Dein Fehler:
    PHP-Code:
    <input type="text" size="24" maxlength="50" name="username"
    PHP-Code:
    $nutzername $_POST['nutzername']; 
    +
    PHP-Code:
    $_GET['nutzername']; 
    $_GET['passwort']; 
    Das ist Unsinn, du überträgst ja per POST. Und selbst wenns per GET wäre, würden diese beiden Zeilen nichts machen.

    +
    PHP-Code:
    if($nutzername != "" && $passwort != "") { 
    Diese Abfrage solltest du erstmal mit den übergebenen Werten machen, bevor du die Werte anderen variablen zuweist. Also $_POST['username] usw. ins if.

    +
    Standardtext für die Datenbankverbindung:
    Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
    Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
    Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm

    Mehr hab ich erstmal nicht gesehen (Code nur mal überflogen)
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar

    Lädt...
    X