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

Problem mit der HTTP-Authentifizierung ( mit PHP)

Discussion in 'Web-Know-how für die Homepage' started by napster-3D, Nov 15, 2008.

Thread Status:
Not open for further replies.
  1. napster-3D

    napster-3D Byte

    Abend alle zusammen,

    Ich habe ein Problem mit der HTTP-Authentifizierung. Und zwar wollte ich fragen ob es moeglich ist direkt nach der Eingabe der Login-Daten diese zu speichern mit Hilfe eines Cookies sodass die aufzurufende Seite am Anfang des Codes den gesetzen Cookie ueberprueft und falls alles passt den Inhalt anzeigt, falls nicht wieder zur Authentifizierungs Seite zurueck leitet. :confused:

    Kurz und knapp ich habe wor eine Webseite mit einer HTTP-Authentifizierung zu schuetzen und ich will nicht das wenn jemand einfach die URL der "zu schuetzenden Seite" in den Browser eingibt und dann Zugriff hat.

    Den Code den ich zuvor verwendet habe jedoch meinen Vorstellungen nicht ganz entspricht:

    <?php

    $Benutzername = "napster-3D";
    $Passwort = "hier das pw als hash";


    if($_SERVER['PHP_AUTH_USER']==$Benutzername && md5($_SERVER['PHP_AUTH_PW'])==$Passwort)
    {

    header ("Location: beispielseite.php" ); // weiterleitung^^
    }
    else
    {
    header("WWW-Authenticate: Basic realm=\"Auf diesem Server ist eine User-Authentifizierung erforderlich!\"");
    header("HTTP/1.0 401 Unauthorized");
    echo"Error.";
    }

    ?>

    Danke schon mal im voraus fuer alle Antworten,

    mfg, napster-3D
     
    Last edited: Nov 15, 2008
  2. VB-Coder

    VB-Coder Megabyte

  3. kalweit

    kalweit Hüter der Glaskugel

    Damit die HTTP-Authentifizierung per PHP funktioniert, muss PHP zwingend als Modul laufen. Das ist bei 99,x% der Hoster aber nicht der Fall. Wenn, dann kannst du den Status der Authentifizierung einfach auslesen und brauchst keine Cookies - das machen Server und Browser unter sich aus. Ansonsten gibt es in PHP das Mittel der Sessions.
     
  4. napster-3D

    napster-3D Byte

    das mit dem Modul habe ich geregelt, also ohne CGI, ich informier mich mal nach den Sessions.

    thx @ alle antworten.

    mfg, napster-3D
     
  5. salim_aliya

    salim_aliya Halbes Megabyte

    Hi,

    Auths via Cookies sind nicht schwer. Gut wäre, wenn du auch ne MySQL Datenbank zur verfügung hast, worin du Tabellen mit Benutzernamen und Passwörter in Hash anlegst. Optional könntest du auch via IP den user identifizieren, was alles doppelt sicher macht.

    Deine SQL Tabelle könnte drei Felder beinhalten:
    - Username
    - Password
    - IP

    Über ein Formular musst der Benutzer seine Daten absenden, die in einem PHP Script in MD5 umgerechnet werden, mit der Datenbank fehlerfrei verglichen und dann muss das Cookie gesetzt werden.

    Wenn es jetzt zur wiedererkennung des users kommt, könntest du folgendes machen:

    PHP:
    <?php

    if(isset($_COOKIE['DEINCOOKIE']))
    {
        
    mysql_connect("localhost""DEINBN""DEINPW");
        
    mysql_select_db("DEINEDB");

        
    $mysql mysql_query('SELECT * FROM DEINETABELLE WHERE IP="'.$_SERVER['REMOTE_ADDR'].'" AND PASSWORD="'.$_COOKIE['DEINCOOKIE'].'"');

        if(
    mysql_num_rows($mysql) != 0)
        {
            
    $mysql mysql_fetch_array($mysql);
            echo 
    "Willkommen im Userbereich!!!";
        }
        else
        {
            
    header("Location: FEHLER.php");
            echo 
    "FEHLER!!! COOKIE GEFÄLSCHT ODER UNGÜLTIG!!";
            die();
        }

        
    mysql_close();
    }
    else
    {
        
    header("Location: index.php");
        echo 
    "FEHLER, KEIN COOKIE!!";
        die();
    }

    ?>
    Hoffe, der Ansatz bringt dich weiter :D
     
    Last edited: Nov 18, 2008
Thread Status:
Not open for further replies.

Share This Page