1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Login-Fehler - PHP

Discussion in 'Programmieren' started by janick94, Jan 4, 2010.

Thread Status:
Not open for further replies.
  1. janick94

    janick94 Guest

    Hallo,

    ich habe folgendes Registrierungs-Script:

    PHP:
    <?php
    include 'header.php';
    ?>

    <?php

    $verbindung 
    mysql_connect("xxxxxxxxxxxx")
    or die (
    "Keine Verbindung zur Datenbank möglich. Bitte informiere den Webmaster.");

    mysql_select_db("xxxxxxxxx") or die ("Keine Verbindung zur Datenbank möglich. Bitte informiere den Webmaster.");

    $username $_POST["name"];
    $passwort $_POST["pass"];
    $email $_POST["email"];

    $passwort md5($passwort);

    $result mysql_query("SELECT id FROM user WHERE name LIKE '$username'");
    $menge mysql_num_rows($result);

    if(
    $menge == 0) {
        
    $eintrag "INSERT INTO user (name, passwort, email) VALUES ('$username', '$passwort', '$email')";
        
    $eintragen mysql_query($eintrag);
        
        if(
    $eintragen == true) {
            echo 
    "Vielen Dank, dein Account wurde erfolgreich erstellt. Du kannst dich nun einloggen. Viel Spaß!";
            } else {
                echo 
    "Fehler beim Speichern des Benutzernamens.";
                }
                }
                
    else {
            echo 
    "Der Benutzername ist bereits vergeben. Bitte versuche es erneut und wähle einen anderen Namen.";
    }

    ?>

    <?php
    include 'footer.php';
    ?>
    und folgendes Login-Script:

    PHP:
    <?php
    session_start
    ();
    include 
    'header.php';
    ?>

    <?php

    $verbindung 
    mysql_connect("xxxxxxxxxxxxx")
    or die (
    "Keine Verbindung zur Datenbank möglich. Bitte informiere den Webmaster.");

    mysql_select_db("xxxxxxxxxxxx") or die ("Keine Verbindung zur Datenbank möglich. Bitte informiere den Webmaster.");

    $username $_POST["name"];
    $passwort md5($_POST["pass"]);

    $abfrage "SELECT name, passwort FROM user WHERE name LIKE '$username'";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);

    if(
    $row->pass == $passwort) {
        
    $_SESSION["name"] = $username;
        echo 
    "Danke, du hast dich erfolgreich eingeloggt. <a href=area/start.php>Zum Login-Bereich</a>";
        }
        else
        {
        echo 
    "Der Benutzername und/oder das Passwort waren falsch.";
        }

    ?>

    <?php
    include 'footer.php';
    ?>
    Die Registrierung funktioniert super. Wenn ich mich dann einloggen will, bekomme ich die Meldung "Der Benutzername und/oder das Passwort waren falsch.", allerdings habe ich alles richtig eingegeben. Woran könnte das liegen?
     
  2. julian14

    julian14 Kbyte

    Schau mal in folgende Zeile:
    Code:
    if($row->pass == $passwort) { 
    Müsste es hier statt "pass" nicht "passwort" heißen, da ja die Spalte in der Datenbank auch "passwort" heißt?


    Noch etwas, was nichts mit deinem Problem zu tun hat:
    Sehe ich das richtig, dass du in jeder php Datei die Zugangsdaten für die Datenbank stehen hast? Wenn ja, überlege mal, ob du das nicht in eine zentrale Datei auslagern möchtest und per include() einbinden. Wenn sich die Daten mal ändern, brauchst du das dann nur an einer Stelle korrigieren.
     
  3. janick94

    janick94 Guest

    Danke für deine Hilfe, es funktioniert aber leider nicht. Hat jemand eine andere Idee, woran es liegen könnte?
     
  4. julian14

    julian14 Kbyte

  5. janick94

    janick94 Guest

    Die Spalte heißt "passwort", also klein geschrieben.
     
  6. julian14

    julian14 Kbyte

    Ich habe das Skript jetzt mal auf meinen Rechner kopiert und dort laufen lassen. Wie du geschrieben hast, hat es nicht funktioniert.

    Wenn ich dann aber, wie schon in meinem ersten Post geschrieben habe, die Zeile
    durch
    ersetzt habe, hat es funktioniert.

    D.h. das Skript arbeitet selbst korrekt. Was jetzt noch falsch sein kann ist die Datei, die das Skript aufruft. Also dort, wo das Formular drin ist. Poste mal den Quellcode dieser Datei.
     
  7. janick94

    janick94 Guest

    Das Formular, mit dem man sich einloggt:

    HTML:
    <?php
    include 'header.php';
    ?>
    
    <h2>Login</h2><p>
    
    <form method="post" action="login2.php">
    <table border="0">
    <tr>
    <td>Benutzername</td>
    <td><input type="text" name="name"></td>
    </tr>
    <tr>
    <td>Passwort</td>
    <td><input type="password" name="pass"></td>
    </tr>
    </table>
    <p>
    <input type="submit" value="Login">
    </form>
    
    <?php
    include 'footer.php';
    ?>
     
  8. julian14

    julian14 Kbyte

    OK, auch das habe ich getestet und es funktioniert korrekt.

    Hast du denn auch die eine Zeile korrigiert, die ich dir geschrieben habe?
     
  9. janick94

    janick94 Guest

    Ich habe es geändert, es funktioniert aber immer noch nicht ... :confused:
     
Thread Status:
Not open for further replies.

Share This Page