PHP Login System mit TextDateien und Sessions...

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PHP Login System mit TextDateien und Sessions...

    Wie findet ihr dieses Tutorial.??? 0
    1.  
      Ja das ist mal was ganz nettes... (0) 0%
    2.  
      Echt nice... Bleibe jedoch trotzdem bei mySQL (0) 0%
    3.  
      Danke aber sowas kann ich net gebrauchen... (0) 0%
    4.  
      Was ist PHP ? (0) 0%
    Hi @ all...

    Ich hatte so wie immer ma wieder lange weile und habe für die leute, die auf ihrem FreeHoster oder generell WebHoster kein mySQL oder eine andere SQL Datenbank haben ein LoginSystem mit PHP gebastelt, welches die Benutzerdaten in TextDateien( .lif ) speichert und dort auch wieder abruft... Die Daten werden nach dem Abrufen in Sessions gespeichert und koennen die Ganze zeit weiterbenutzt werden, bis man die Session wieder beendet zB mit der logout.php.

    Zum testen: hxxp://raveshow.funpic.de/txtlogin/

    Zum Downloaden: hxxp://raveshow.funpic.de/txtlogin/txtlogin.zip

    ACHTUNG: Erstellt in dem selben ordner, wo ihr die .PHP Files reinpackt auch einen ordner namens "benutzer", und denkt daran ihm auf dem FTP Server den CHMOD "777" zu geben damit die Dateien erstellt werden koennen...

    Auf der Startseite(index.php) wird das LoginFormular angezeigt, sowie ein Link der zum Registrieren geht.

    index.php

    PHP-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <!-- +-----------------------------------------------------------------+ -->
    6. <!--
    7. +---------------------------------------------------------+
    8. | |
    9. | Copyright by RaveShowNetworkZ 2oo6 |
    10. | |
    11. | Design by : RAVESHOW |
    12. | Code by : RAVESHOW |
    13. | |
    14. | Contact: [email protected] |
    15. | |
    16. | http://raveshow.funpic.de/ |
    17. +---------------------------------------------------------+
    18. -->
    19. <!-- +----------------------------------------------------------------+ -->
    20. <? session_start(); ?>
    21. <title>PHPLogin System mit .txt und Sessions</title>
    22. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    23. <link rel="stylesheet" type="text/css" href="login.css">
    24. </head>
    25. <body>
    26. <center>
    27. <table>
    28. <form action="<? $PHP_SELF; ?>" method="post">
    29. <tr>
    30. <td colspan="2" align="left"><b>LoginSystem</b><hr></td>
    31. </tr>
    32. <tr>
    33. <td>Benutzername:&nbsp;</td>
    34. <td><input type="text" size="25" name="benutzername"></td>
    35. </tr>
    36. <tr>
    37. <td>Passwort:&nbsp;</td>
    38. <td><input type="password" size="25" name="passwort"></td>
    39. </tr>
    40. <tr>
    41. <td colspan="2" align="left"><hr></td>
    42. </tr>
    43. <tr>
    44. <td colspan="2" align="right"><input type="submit" value="Einloggen" name="login"></td>
    45. </tr>
    46. <tr>
    47. <td colspan="2" align="center">
    48. <?
    49. // Falls ein fehler beim einloggen passiert kommt man hier hin...
    50. if(isset($_GET['error'])) {
    51. echo "Login fehlgeschlagen!";
    52. }
    53. // Wenn man den Einloggen Button gedrückt hat wird dieser PHP teil ausgeführt...
    54. if(isset($_POST['login'])) {
    55. // Ein paar Variabeln...
    56. $var_usr = $_POST['benutzername'];
    57. $var_pwd = $_POST['passwort'];
    58. $var_f = "benutzer/".$var_usr.".lif";
    59. // Wenn die Datei existiert soll er weitermachen...
    60. if(file_exists($var_f)) {
    61. // Jetzt wird die Datei in ein Array eingelesen...
    62. $check = array();
    63. $datei = fopen($var_f, "r");
    64. $lesen = fgets($datei, 1024);
    65. array_push($check, $lesen);
    66. fclose($datei);
    67. $lif = explode("§§", $check[0]);
    68. // Checken ob die im Formular eingegebenen Daten mit denen aus der Datei übereinstimmen...
    69. if($var_usr == $lif[0] && md5($var_pwd) == $lif[1]) {
    70. // Wenn alles richtig war bis jetzt werden die Daten aus der Datein in SessionVariabeln übergeben...
    71. $_SESSION['lif_benutzer'] = $lif[0];
    72. $_SESSION['lif_passwort'] = $lif[1];
    73. $_SESSION['lif_email'] = $lif[2];
    74. // Nun wird man zur geschützten Seite verfrachtet...
    75. header("Location:main.php");
    76. } else {
    77. // Wenn die Daten nicht stimmen wird man zur Startseite zurückverfrachtet...
    78. header("Location:index.php?error=1");
    79. }
    80. } else {
    81. // Wird ausgegeben wenn die .lif Datei des Benutzers nicht existiert...
    82. echo "Den Benutzer: <b>$var_usr</b> gibt es nicht!";
    83. }
    84. }
    85. ?>
    86. </td>
    87. </tr>
    88. <tr>
    89. <td colspan="2" align="left"><a href="createnew.php">Registrieren?</a></td>
    90. </tr>
    91. </form>
    92. </table>
    93. </center>
    94. </body>
    95. </html>
    Alles anzeigen


    Um einen neuen Benutzer zu registrieren habe ich eine "createnew.php erstellt.

    PHP-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <!-- +-----------------------------------------------------------------+ -->
    6. <!--
    7. +---------------------------------------------------------+
    8. | |
    9. | Copyright by RaveShowNetworkZ 2oo6 |
    10. | |
    11. | Design by : RAVESHOW |
    12. | Code by : RAVESHOW |
    13. | |
    14. | Contact: [email protected] |
    15. | |
    16. | http://raveshow.funpic.de/ |
    17. +---------------------------------------------------------+
    18. -->
    19. <!-- +----------------------------------------------------------------+ -->
    20. <title>PHPLogin System mit .txt und Sessions</title>
    21. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    22. <link rel="stylesheet" type="text/css" href="login.css">
    23. </head>
    24. <body>
    25. <center>
    26. <table>
    27. <form action="<? $PHP_SELF; ?>" method="post">
    28. <tr>
    29. <td colspan="2" align="left"><b>LoginSystem - Neuregistrierung</b><hr></td>
    30. </tr>
    31. <tr>
    32. <td>Benutzername:&nbsp;</td>
    33. <td><input type="text" size="25" name="neuer_benutzer"></td>
    34. </tr>
    35. <tr>
    36. <td>Passwort:&nbsp;</td>
    37. <td><input type="password" size="25" name="neues_passwort"></td>
    38. </tr>
    39. <tr>
    40. <td>e-Mail:&nbsp;</td>
    41. <td><input type="text" size="25" name="neue_email"></td>
    42. </tr>
    43. <tr>
    44. <td colspan="2" align="left"><hr></td>
    45. </tr>
    46. <tr>
    47. <td colspan="2" align="right"><input type="submit" value="Registrieren" name="reg"></td>
    48. </tr>
    49. <tr>
    50. <td align="center" colspan="2">
    51. <?
    52. // Ein paar Variabeln bestimmen...
    53. $var_user = $_POST['neuer_benutzer'];
    54. $var_pass = $_POST['neues_passwort'];
    55. $var_mail = $_POST['neue_email'];
    56. $datei = "benutzer/".$var_user.".lif";
    57. $vorhanden = file_exists($datei);
    58. // Wenn die Datei vorhanden ist soll er nicht weitermachen und einen Fehler ausgeben... andernfalls
    59. // macht er mit der Prozedur weiter...
    60. if(!$vorhanden) {
    61. // Wenn der Registrieren Button gedrückt wurde macht er weiter...
    62. if(isset($_POST['reg'])) {
    63. // Einmal kurz prüfen ob die wichtigen Felder auch nicht leer waren...
    64. if(!empty($var_user) && !empty($var_pass)) {
    65. // Neue Datei schreiben mit Benutzerinformationen...
    66. $eintrag = $var_user."§§".md5($var_pass)."§§".$var_mail;
    67. $f = fopen($datei, "w");
    68. fwrite($f, $eintrag);
    69. fclose($f);
    70. echo "Benutzer wurde hinzugefügt!";
    71. header ("Refresh: 2, URL=index.php");
    72. } else {
    73. echo "Benutzer konnte nicht hinzugefügt werden!";
    74. }
    75. }
    76. } else {
    77. echo "Benutzer ist bereits vorhanden!";
    78. }
    79. ?>
    80. </td>
    81. </tr>
    82. </form>
    83. </table>
    84. </center>
    85. </body>
    86. </html>
    Alles anzeigen


    Hier ist noch eine provisorische geschützte seite... die koennt ihr jedoch mit eurer eigenen ersetzen...

    main.php

    PHP-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <!-- +-----------------------------------------------------------------+ -->
    6. <!--
    7. +---------------------------------------------------------+
    8. | |
    9. | Copyright by RaveShowNetworkZ 2oo6 |
    10. | |
    11. | Design by : RAVESHOW |
    12. | Code by : RAVESHOW |
    13. | |
    14. | Contact: [email protected] |
    15. | |
    16. | http://raveshow.funpic.de/ |
    17. +---------------------------------------------------------+
    18. -->
    19. <!-- +----------------------------------------------------------------+ -->
    20. <?
    21. session_start();
    22. include("auth.php");
    23. ?>
    24. <title>PHPLogin System mit .txt und Sessions</title>
    25. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    26. <link rel="stylesheet" type="text/css" href="login.css">
    27. </head>
    28. <body>
    29. <u><b>Eingeloggt als:</b><p></u>
    30. <b>Benutzername:</b>&nbsp;<? echo $_SESSION['lif_benutzer']; ?><br>
    31. <b>Passwort(MD5):</b>&nbsp;<? echo $_SESSION['lif_passwort']; ?><br>
    32. <b>e-Mail:</b>&nbsp;<? echo $_SESSION['lif_email']; ?><p>
    33. <b>SessionID:</b>&nbsp;<? echo session_id(); ?><br>
    34. <form action="logout.php"><input type="submit" value="Ausloggen"></form>
    35. </body>
    36. </html>
    Alles anzeigen


    Die Datei auth.php dient dazu, um zu kontrollieren ob jemand Rechte hat die Seite, wo die Datei eingebunden wurde zu betreten...

    PHP-Quellcode

    1. <?php
    2. session_start ();
    3. if (!isset ($_SESSION['lif_benutzer']))
    4. {
    5. header ("Location: index.php");
    6. }
    7. ?>


    Und als vorletztes gibt es noch die logout.php. Ich glaube ich muss nicht weiter erkären wozu diese dient ;)

    PHP-Quellcode

    1. <?php
    2. ob_start ();
    3. unset($check);
    4. session_start ();
    5. session_unset ();
    6. session_destroy ();
    7. header ("Location: index.php");
    8. ob_end_flush ();
    9. ?>


    Aber bevor ich sage das ich nun feddich bin... Ich habe noch ein wenig mit CSS gearbeited und eine externe CSS Datei gebastelt.
    login.css

    HTML-Quellcode

    1. body {
    2. font-family:Verdana, Arial, Helvetica, sans-serif;
    3. font-size:9px;
    4. color:#333333;
    5. background-color:#CCCCCC;
    6. }
    7. input {
    8. font-family:Verdana, Arial, Helvetica, sans-serif;
    9. font-size:9px;
    10. color:#333333;
    11. background-color:#FEFFFF;
    12. border:1px solid #333333;
    13. }
    14. a {
    15. font-family:Verdana, Arial, Helvetica, sans-serif;
    16. font-size:9px;
    17. color:#FF6600;
    18. text-decoration:none;
    19. }
    Alles anzeigen
  • Ganz okay aber..


    Die Textdatei liegt so offen rum.
    hxxp://raveshow.ra.funpic.de/txtlogin/benutzer/hans.lif


    Collision found ! => 12345
    Collision(s) tested : 89865220 in 19 second(s), 984 millisec, 0 microsec.
    Average of 4496858.7 hashes/sec.

    <<MDCrack NG>> Session ended on 2006/03/03 Friday,19:49:22
    <<MDCrack NG>> Total session time: 20 sec(s)(20.250 second(s))


    Gruß