Login-Session mit ID des Benutzers

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

  • Login-Session mit ID des Benutzers

    Hallo ihr,
    ich bin gerade dabei eine Dropboxähnliche Website zu programmieren.

    Meine Frage ist: wenn der Benutzer sich einloggt mit Benutzername und Passwort via Formular, wie wird das Eingebene dann überprüft? Sodass der Benutzer auf seine eigene Accountseite weitergeleitet wird? wie muss ich die Session schreiben? Bin etwas verzweifelt..

    PHP-Code:
    <?php
    #Session starten
    session_start();

    #Datenbankverbindung herstellen
    include_once ("db-connection.php");

    $benutzername=strtolower($_POST["benutzername"]);
    $pw=$_POST["pw"];


    #Passwort und zugehörige Daten anhand eingegebenem Benutzername holen
        
    $sql = ("SELECT * FROM benutzer WHERE benutzername = '".$benutzername."'");
        
    $stmt $db->prepare($sql);
        
    $stmt->bindParam(':benutzername'$benutzername); #Verbinden von Parametern (Benutzername mit User)
        
    $stmt->execute(); #Ausführung
        
    $result=$stmt->fetch(PDO::FETCH_OBJ);
        
    $prev=$result->pw;
        
    $id=$result->id
        
    $benutzername=$result->benutzername
        
        if (
    password_verify($pw$prev)) {
            
    $_SESSION['id']= $id;
            
    $_SESSION['benutzername']= $benutzername;
            
    $_SESSION['logged_in'] = time(); 
        
    ?>
    Sie werden bei Cloud7 eingeloggt. 
        <meta http-equiv="refresh" content="5; url=account.php"/> 
    <?php

        
    }
        
        else {
    ?>        

    Bitte logge dich erst ein! <a href="index.php"> Zum Login. </a> 
        
    <?php
        
    }
    #Prüfen ob alles ausgefüllt wurde also ungleich Null ist
    ?>

  • #2
    Hallo,
    1. Du verwendest User-Eingaben ungefiltert, Achtung!
    2. Warum umschliesst Du den String von $sql mit Klammern? Unnötig...
    3. Warum das bindParam? Du hast doch den entsprechenden Platzhalter gar nicht in Deiner Query!


    Zur Frage:
    Ich würde die Weiterleitung allein in Bezug auf das EVA-Prinzip direkt in PHP machen:
    PHP-Code:
    header 'location: ' __DIR__ '/account.php' ); 
    In Bezug auf PDO hilft Dir das vielleicht ein wenig: PDO und Prepared Statements

    Gruß Arne

    Kommentar

    Lädt...
    X