[PHP] Login mit cookies und direkter weiterleitung

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Tikky, 20. Mai 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 20. Mai 2008
    Login mit cookies und direkter weiterleitung

    hi leute,

    hier ist mal mein script für ein php basiertes login ohne mysql, ich will, dass bei erfolgreichem login ein cookie gesetzt wird:

    das habe ich mit folgendem code auch schon hinbekommen:

    Code:
    <?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
     session_start();
     $username = $_POST['username'];
     $passwort = $_POST['passwort'];
     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);
    
     // Benutzername und Passwort werden überprüft
     if ($username == 'test' && $passwort == 'test') {
     $_SESSION['angemeldet'] = true;
     // Weiterleitung zur geschützten Startseite
     header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/clients.php');
     setcookie($username, $passwort);
     exit;
     }
     }
    ?>
    

    Da wird nun nach der Weiterleitung ein cookie gesetzt. kann mir jemand das script um eine abfrage am Anfang ergänzen, die prüft, ob ein cookie exisitiert, und wenn ja, direkt auf clients.php weiterleitet? Falls dieses Cookie nicht exisitiert, soll er einfach ohne Weiterleitung auf der login.php bleiben.

    Würde mich über hilfreiche Antworten sehr freuen.

    Danke

    gruß,
    Tikky
     
  2. 20. Mai 2008
    AW: Login mit cookies und direkter weiterleitung

    setzt nen richtigen cookie den man auch abfragen kann.

    PHP:
    setCookie ( 'userdata' $username  '|'  $password );
    und dann kannst ihn abfragen

    PHP:
    if(isset( $_COOKIE [ 'userdata' ])) {
        list(
    $username $password ) =  explode ( '|' $_COOKIE [ 'userdata' ]);
        if(
    $username  'so'  &&  $password  ==  'undso' ) {
            
    header ( 'location: http://weiterleiten.de' );
            exit;
        } else {
            
    //zugangsdaten falsch
        
    }
    } else {
        
    //kein cookie vorhanden
    }
     
  3. 20. Mai 2008
    AW: Login mit cookies und direkter weiterleitung

    danke dir für die schnelle antwort,

    also an der stelle wo ich den cookie setze, habe ich deinen code reingemacht, und die abfrage hinten dran gestellt, und natürlich variablen, namen und pw angepasst, als weiterleitung habe ich die weiterleitung genommen, die oben im code steht und auch im normalfall funktioniert hat:
    Code:
    header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/clients.php');
    
    Somit sieht mein kompletter Code folgendermaßen aus:

    Code:
    <?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
     session_start();
     $username = $_POST['username'];
     $passwort = $_POST['passwort'];
     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);
    
     // Benutzername und Passwort werden überprüft
     if ($username == 'test' && $passwort == 'test') {
     $_SESSION['angemeldet'] = true;
     // Weiterleitung zur geschützten Startseite
     header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/clients.php');
     setCookie('userdata', $username . '|' . $passwort);
     exit;
     }
    }
    if(isset($_COOKIE['userdata'])) {
     list($username, $passwort) = explode('|', $_COOKIE['userdata']);
     if($username = 'test' && $passwort == 'test') {
     header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/clients.php');
     exit;
     } else {
     //zugangsdaten falsch
     }
    } else {
     //kein cookie vorhanden
    }
    ?>
    
    Aber beim aufrufen der Seite sagt er, dass er die http://clients.php/ nicht findet, dabei sollte dieser absolute URL doch vermieden worden sein?

    Vielleicht soltle ich noch dazu sagen,d ass der Code in einer separaten pass.php steht und in der login.php includet wird, aber das sollte ja normal nciht das problem sein.

    kann jemand weiterhelfen? oder hat jemand eine andere idee?

    bewertung raus.

    gruß
    tikky
     
  4. 20. Mai 2008
    AW: Login mit cookies und direkter weiterleitung

    schaut eher so aus als ab $hostname und $path ned gesetzt sind.
    schreib mal über alles das:

    error_reporting(E_ALL);

    und poste nacher mal den fehler
     
  5. 20. Mai 2008
    AW: Login mit cookies und direkter weiterleitung

    das ist jetzt mein code:

    Code:
    <?php
    error_reporting(E_ALL);
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
     session_start();
     $username = $_POST['username'];
     $passwort = $_POST['passwort'];
     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);
    
     // Benutzername und Passwort werden überprüft
     if ($username == 'test' && $passwort == 'test') {
     $_SESSION['angemeldet'] = true;
     // Weiterleitung zur geschützten Startseite
     header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/clients.php');
     setCookie('userdata', $username . '|' . $passwort);
     exit;
     }
    }
    if(isset($_COOKIE['userdata'])) {
     list($username, $passwort) = explode('|', $_COOKIE['userdata']);
     if($username = 'test' && $passwort == 'test') {
     header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/clients.php');
     exit;
     } else {
     //zugangsdaten falsch
     }
    } else {
     //kein cookie vorhanden
    }
    ?>
    

    Im Firefox kommt die selbe Seite:


    Der Internet Explorer reagiert anders, der Login ist möglich, aber wenn ich dann auf eine andere Seite geh und wieder zurück auf login, kommt:

     
  6. 20. Mai 2008
    AW: Login mit cookies und direkter weiterleitung


    das wars =))))) jetzt funktionierts, danke dir für deine hilfe!

    bewertung haste ja schon, vielen dank
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.