Ankündigung

Einklappen
Keine Ankündigung bisher.

Login-daten auslagern

Einklappen

Neue Werbung 2019

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

  • Login-daten auslagern

    Ich habe ein php script aus dem netzt mit dem man sich in einen geschützten bereich einloggen kann.
    Allerdings werden die daten fürs login direkt in das file geschrieben.
    Ich möchte gerne wissen wie ich die Daten am besten von einem Textfile oder einer Datenbank auslesen kann.

    PHP-Code:
    <?php


    /*** KONFIGURATION ***/

    // Definiert Konstanten für das Script
    define('MD5_ENCRYPT'false); // Aktiviert Verschlüsselung für Passwort. Wenn "true" gesetzt, müssen Passwörter von $usrdata md5-verschlüsselt vorliegen. Standard: false
    define('SUCCESS_URL''private.php'); // URL, zu welcher nach erfolgreichen Login umgeleitet wird.
    define('LOGIN_FORM_URL''login.html'); // URL mit Anmeldeformular
    // Array mit Benutzerdaten: Besteht aus Array-Elementen mit paarweisen Benutzernamen und Passwörtern
    $usrdata = array(

        array(
            
    "usr" => "admin",
            
    "pwd" => "passwort" // MD5-verschlüsselte Form: e22a63fb76874c99488435f26b117e37
        
    ),
        array(
            
    "usr" => "test",
            
    "pwd" => "test"
        
    )
        
        
    /* ... */
    );






    header("Content-Type: text/html; charset=utf-8"); // Melde Browser die verwendete Zeichenkodierung

    // PHP-Session starten und aktuellen Stand abfragen
    session_start();
    $_SESSION['logged_in'] = (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true) ? true false;
    $_SESSION['usr'] = (isset($_SESSION['usr'])) ? $_SESSION['usr'] : '';




    $error = array();
    if(!isset(
    $_POST['login'])){
        
    header('Location: '.LOGIN_FORM_URL);
    }else{
        
    $usr = (!empty($_POST['user']) && trim($_POST['user']) != '') ? $_POST['user'] : false;
        
    $pwd = (!empty($_POST['password']) && trim($_POST['password']) != '') ? $_POST['password'] : false;
        
        if(!
    $usr || !$pwd){
            if(
    count($error) == 0)
                
    $error[] = "Bitte geben Sie Benutzername und Passwort ein.";
        }else{
            
    $pwd = (MD5_ENCRYPT === true) ? md5($pwd) : $pwd// Passwort eingabe MD5-encrypten, falls Option gesetzt ist
            
    foreach($usrdata as $ud){ // Benutzer-Liste durchlaufen und je mit Formular-Eingaben vergleichen
                
    if($usr != $ud['usr'] || $pwd != $ud['pwd']){
                    if(
    count($error) == 0)
                        
    $error[] = "Benutzername und/oder Passwort nicht korrekt.";
                }else{
                    
    $_SESSION['logged_in'] = true;
                    
    $_SESSION['usr'] = $usr;
                    
    header('Location: '.SUCCESS_URL);
                }
            }
        }
    }

    ?><!doctype html>
    <html>
        <head>
            <meta name="content-type" content="text/html; charset=utf-8" />
            <title>Login-Fehler</title>
        </head>
        <body>
            <ul>
            <?php
            
    foreach($error as $out){
                
    ?>
                <li><?php echo $out?></li>
                <?php
            
    }
            
    ?>
            </ul>
            <p><a href="<?php echo LOGIN_FORM_URL?>">Zur Anmeldeseite</a></p>
        </body>
    </html>
    danke schon mal in vorraus


  • #2
    Login-daten auslagern

    Zitat von cxyv
    Ich möchte gerne wissen wie ich die Daten am besten von einem Textfile oder einer Datenbank auslesen kann.
    Abgebildet auf das von dir gepostete Script...indem du das Array $usrdata mit Daten aus der Datenbank oder einer Datei liest.

    Zur Datenbank musst du die Verbindung aufbauen und die Daten abfragen. Die Datei musst du entsprechend auslesen.
    Delirius

    PHP - Grundlagen / PDO - Tutorial / PDO - Dokumentation

    Kommentar


    • #3
      Danke für die infos.
      könnte ich eventuell ein code-schnipsel bekommen in dem ich sehen kann wie ich das Array auslese (Kenne mich mit arrays nicht richtig aus)

      Kommentar


      • #4
        Login-daten auslagern

        Verstehe ich jetzt nicht ganz?! In deinem Code wird doch bereits das Array ausgelesen.
        PHP-Code:
        foreach( $usrdata as $ud ){
            if( 
        $usr != $ud['usr'] || $pwd != $ud['pwd'] ){
                if( 
        count($error) == ){
                    
        $error[] = "Benutzername und/oder Passwort nicht korrekt.";
                } else {
                    
        $_SESSION['logged_in'] = true;
                    
        $_SESSION['usr'] = $usr;
                }
            }

        Delirius

        PHP - Grundlagen / PDO - Tutorial / PDO - Dokumentation

        Kommentar


        • #5
          ok den teil hab ich jetzt soweit verstanden.
          kanst du mir noch bitte den code fürs direkte auslesen ser datei zum array zeigen?

          Code:
          lese user-und-pass.txt zu array
          user-und-pass.txt
          (
          adminasswort
          )

          oder wie das genau funktionieren mag...

          Kommentar


          • #6
            Login-daten auslagern

            Zitat von cxyv
            kanst du mir noch bitte den code fürs direkte auslesen ser datei zum array zeigen?
            Nö, das ist jetzt deine Aufgabe. Wenn du Code produziert und damit dann Probleme hast, kannst du gerne wieder hier fragen.

            Fertigen Code darfst du nicht erwarten. Hier gibt es Hilfe zur Selbsthilfe, solltest du bei deiner Anmeldung gelesen haben.
            Delirius

            PHP - Grundlagen / PDO - Tutorial / PDO - Dokumentation

            Kommentar

            Lädt...
            X