[PHP] Login Tutorial mit Sessions und Registrierung

Dieses Thema im Forum "Webentwicklung" wurde erstellt von alsdwo3, 27. Juli 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. Juli 2010
    Login Tutorial mit Sessions und Registrierung

    Wie erstelle ich eine User Verwaltung? Wie funktioniert ein Login?
    Das und mehr erfahrt ihr hier!

    Ziel diese Tutorials ist es, dem PHP Anfaenger die wichtigsten Funktionen zu vermitteln.
    Die waeren hier, wie:
    • man Formulare auswertet
    • man in Dateien schreibt
    • Dateien ausgelesen werden
    • Arrays funktionieren
    Schritt 1: (Text)datenbank anlegen
    Zu aller erst legen wir eine datenbank.txt an.
    In ihr werden wir spaeter Benutzername und Passwort speichern.
    Die muss aus dem PHP Script heraus beschreibbar sein!
    Deswegen CHMOD bei eurem FTP Programm auf 666 setzen.

    Schritt 2: Registrierung
    Nun ist die registrierung.php dran.
    Im nachfolgendem Script, werden wir fuer jedne Benutzer eine neue Zeile anlegen.
    Dies geht per "\n".
    Benutzername und Passwort werden wir per Tabulator (\t) trennen, um so beides beim auslesen unterscheiden zu koennen.
    In Zeile 6 im nachfolgendem Script, oeffnen wir die Datei per Option "a" (append).

    PHP:
    <? php
    // registrierung.php
    if( $_POST [ 'submit' ] ==  1 ) {
     
    $line  $_POST [ 'user' ] . "\t" md5 ( $_POST [ 'password' ]). "\n" ;
    $handle  fopen ( 'db.txt' "a" );
    fwrite ( $handle $line )or die( 'Fehler beim Schreiben' );
    fclose ( $handle );
    }
    ?>
     
    <form method="post" action="
    <?php  echo  $_SERVER [ 'PHP_SELF' ];  ?>">
    <input type="hidden" name="submit" value="1" />
    <table>
    <tr>
    <td>Benutzername:</td>
    <td><input type="text" name="User" /></td>
    </tr>
    <tr>
    <td>Passwort:</td>
    <td><input type="password" name="password" /></td>
    </tr>
    <tr>
    <td colspan="2">
    <input type="submit" value="Registrieren" />
    </td>
    </tr>
    </table>
    </form>


    Schritt 3: Login

    Damit sich der Benutzer auch anmelden kann, erstellen wir hierfuer ein Formular.

    PHP:
    <? php 
    // login.php

    ?>
    <form method="post" action="<?php  echo  $_SERVER [ 'PHP_SELF' ];  ?>">
    <input type="hidden" name="p_submit" value="1" />
    <table>
    <tr>
    <td>Benutzername:</td>
    <td><input type="text" name="p_user" value="<?php  echo  $_POST [ 'p_user' ];  ?>" /></td>
    </tr>
    <tr>
    <td>Passwort:</td>
    <td><input type="password" name="p_password" /></td>
    </tr>
    <tr>
    <td colspan="2">
    <input type="submit" value="Login" />
    </td>
    </tr>
    </table>
    </form>


    Schritt 4: Schutz von PHP Dateien

    Nun ist das schuetzen der PHP Dateien dran.
    Dafuer legen wir eine Datei namens schutz.php an.
    Diese binden wir dann in die gewuenschte Datei mit ein.

    session_start() ist fuer den Schutz Voraussetzung.
    Das if($_POST['submit'] == 1) checkt hierbei, ob die Registrierungs bzw. das Loginformular abgeschickt wurde.
    Mittels file() packen wir die Zeilen in Arrays, welche wir dann mit explode nach dem Tabulator trennen.

    Danach ueberpruefen wir ob die in der Session gespeicherten Daten existieren.
    Wenn ja, weisen wir der Variable $login den Wert wahr also true zu.
    Bei keinem Treffer, brechen wir die Operation mit die() ab.

    PHP:
    <? php 
    // schutz.php
     
    session_start ();
    if(
    $_POST [ 'p_submit' ] ==  1 ) {
    $_SESSION [ 's_user' ] =  $_POST [ 'p_user' ];
    $_SESSION [ 's_password' ] =  md5 ( $_POST [ 'p_password' ]);
    }
    $login  false ;
     
    $file  file ( 'db.txt' );
    if(
    $_SESSION [ 's_user' ] !=  ''  &&  $_SESSION [ 's_password' ] !=  '' )
    foreach(
    $file  as  $row ) {
    $row  explode ( "\t" $row );
     
    $user  trim ( $row [ 0 ]);
    $password  trim ( $row [ 1 ]);
     
    if(
    $user  ==  $_SESSION [ 's_user' ] &&  $password  ==  $_SESSION [ 's_password' ]) {
    $login  true ;
    }
    }
     
     
    if(
    $login  ==  false ) {
    if(
    $_POST [ 'p_submit' ] ==  1 )
    echo 
    'Der Benutzername und/oder Passwort ist nicht korrekt.' ;
    else
    echo 
    'Bitte anmelden!' ;
     
    require(
    'login.php' );
    die();
    }
    ?>


    Schritt 5: Datei schützen

    Nun gehts ans .php Dateien schuetzen.
    Dabei muessen wir nur folgende Zeilen bei dem gewuenschten Script zu Beginn einfuegen.
    PHP:
    <? php
    // admin.php
    require( 'schutz.php' );  ?> 
     
    TO SECURE

    Schritt 6: Ausloggen
    Und zu guter Letzt das ausloggen

    PHP:
    <? php
    // logout.php
    session_start ();
    session_destroy (); 
    ?>

     Sie wurden erfolgreich ausgeloggt! 

     
  2. 27. Juli 2010
    AW: Login Tutorial mit Sessions und Registrierung

    hm also ich finde das ist eher eine anleitung als ein tutorial, gibt auch ein paar sachen die ich bemängeln würde

    Z.B. wird auf kein detail näher eingegangen

    PHP:
    <form method="post" action="<?php  echo  $_SERVER [ 'PHP_SELF' ];  ?>">
    PHP:
    <td><input type="text" name="p_user" value="<?php  echo  $_POST [ 'p_user' ];  ?>" /></td>
    speziell der zweck von deinem echo $_POST und deinem echo $_SERVER z.b.

    Das mit der Textdatei ist auch ein wenig spartanisch...

    Also alles in allem ist das schon korrekt soweit nur wie gesagt ich finde es ist mehr ne ikea bauanleitung als ein tutorial, da der leser eher erfahrung im umgang mit $_POST, $_SESSION und file benötigt.. aber wer soweit ist, der weiß auch schon von selbst wie n login funktioniert
     
  3. 27. Juli 2010
    AW: Login Tutorial mit Sessions und Registrierung


    Genau dieser Meinung bin ich auch. Ein Anfänger kann damit durchaus eine funktionierende benutzeranmeldung auf die beine stellen. Allerdings weiß er im Detail danach genauso viel wie vorher.

    Das ganze sollte dich aber nich davon abhalten weitere tuts zu schreiben
    das nächste ma ein bisschen ausführlicher und alles is wunderbar
     
  4. 27. Juli 2010
    AW: Login Tutorial mit Sessions und Registrierung

    Finde das schön, mich würde das alles nur mehr intressieren, wie das dann alles mit einer SQL Datenbank geht.

    Und welche Möglichkeiten es gibt, die Login sicher zu machen und zu verschlüsseln und sowas.
     
  5. 27. Juli 2010
    AW: Login Tutorial mit Sessions und Registrierung

    ich hab die ganzen threads ausm programmierer-bereich rübergeschoben aber ned wirklich durchgelesen ...

    also auch wenn du es gut meinst, aber "tutorials" sollten dann doch von versierteren nutzern erstellt werden, versteh mich nicht falsch
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.