kostenloser Webspace werbefrei: lima-city


Login klappt nicht. Wieso?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    llweb-it

    llweb-it hat kostenlosen Webspace.

    Liebe Community, ich habe diesen login script geschrieben, er funktioniert jedoch nicht, liegt es an mir oder dem webspace?

    <?php
    session_start();
    
    $stored_username = "admin";
    $stored_password_hash = password_hash("Geheimnis123", PASSWORD_DEFAULT);
    
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $username = $_POST['username'] ?? '';
        $password = $_POST['password'] ?? '';
    
        if ($username === $stored_username && password_verify($password, $stored_password_hash)) {
            
            if ($_SESSION['logged_in'] = true) { 
                $_SESSION['username'] = $username;
                header("Location: dashboard.php");
                exit;
            }
            
        } else {
            $error = "Ungültige Anmeldedaten!";
        }
    }
    ?>


    vielleicht kann jemand helfen? :)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hey,

    Der Fehler liegt darin, dass in der Bedingung if ($_SESSION['logged_in'] = true) ein einfaches Gleichheitszeichen verwendet wurde. Das führt zu einer Zuweisung statt eines Vergleichs. Dadurch wird der Wert true in die Session geschrieben, die Bedingung ist dadurch immer wahr allerdings wird so nie überprüft ob der User eigentlich eingeloggt sein sollte.

    Wenn man den Login-Status für die aktuelle Session setzen möchte, macht man das nach der erfolgreichen Überprüfung der Anmeldedaten.

    Das sieht dann so aus:

    <?php
    session_start();
    
    $stored_username = "admin";
    $stored_password_hash = password_hash("Geheimnis123", PASSWORD_DEFAULT);
    
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $username = $_POST['username'] ?? '';
        $password = $_POST['password'] ?? '';
    
        if ($username === $stored_username && password_verify($password, $stored_password_hash)) {
            
            $_SESSION['logged_in'] = true; 
            $_SESSION['username'] = $username;
            
            header("Location: dashboard.php");
            exit;
            
        } else {
            $error = "Ungültige Anmeldedaten!";
        }
    }
    ?>


    Ist jedoch ein ratschlag mysql zu verwenden wenn lima-city dir das schon umsonst gibt :biggrin: :biggrin:
  4. Autor dieses Themas

    llweb-it

    llweb-it hat kostenlosen Webspace.

    Vielen dank, ich bin noch nicht allzu vertraut damit wie man das macht deswegen dachte ich so.
    Danke für die hilfe
  5. sonst schau einfach mal auf gibthub da gibt es einige projekte, besonders für so einfache logins, ggf auch multiuser: https://github.com/dmuensterer/secure-login-system
  6. Autor dieses Themas

    llweb-it

    llweb-it hat kostenlosen Webspace.

    Danke danke, super schnelle hilfe hier :angel:
  7. 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!