PHP Login System mit TextDateien und Sessions...

Wie findet ihr dieses Tutorial.???

  • Ja das ist mal was ganz nettes...

    Stimmen: 0 0,0%
  • Echt nice... Bleibe jedoch trotzdem bei mySQL

    Stimmen: 0 0,0%
  • Danke aber sowas kann ich net gebrauchen...

    Stimmen: 0 0,0%
  • Was ist PHP ?

    Stimmen: 0 0,0%

  • Umfrageteilnehmer
    0
  • Umfrage geschlossen .
Status
Für weitere Antworten geschlossen.

raveshow

Registered +
Registriert
Apr. 2005
Beiträge
410
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:
[TABLE]


[TR]

[LEFT][td][LEFT][B]LoginSystem[/B]
[HR][/HR][/LEFT][/td][/LEFT]

[/TR]

[TR]

[td]Benutzername: [/td]

[/TR]

[TR]

[td]Passwort: [/td]

[/TR]

[TR]

[LEFT][td][LEFT][HR][/HR][/LEFT][/td][/LEFT]

[/TR]

[TR]


[/TR]

[TR]

[CENTER][td][CENTER]
// Falls ein fehler beim einloggen passiert kommt man hier hin...

if(isset($_GET['error'])) {
echo "Login fehlgeschlagen!";
}

// Wenn man den Einloggen Button gedrückt hat wird dieser PHP teil ausgeführt...

if(isset($_POST['login'])) {

// Ein paar Variabeln...

$var_usr = $_POST['benutzername'];
$var_pwd = $_POST['passwort'];
$var_f = "benutzer/".$var_usr.".lif";

// Wenn die Datei existiert soll er weitermachen...

if(file_exists($var_f)) {

// Jetzt wird die Datei in ein Array eingelesen...

$check = array();
$datei = fopen($var_f, "r");
$lesen = fgets($datei, 1024);
array_push($check, $lesen);
fclose($datei);

$lif = explode("§§", $check[0]);

// Checken ob die im Formular eingegebenen Daten mit denen aus der Datei übereinstimmen...

if($var_usr == $lif[0] && md5($var_pwd) == $lif[1]) {

// Wenn alles richtig war bis jetzt werden die Daten aus der Datein in SessionVariabeln übergeben...

$_SESSION['lif_benutzer'] = $lif[0];
$_SESSION['lif_passwort'] = $lif[1];
$_SESSION['lif_email'] = $lif[2];
// Nun wird man zur geschützten Seite verfrachtet...
header("Location:main.php");
} else {
// Wenn die Daten nicht stimmen wird man zur Startseite zurückverfrachtet...
header("Location:index.php?error=1");
}
} else {
// Wird ausgegeben wenn die .lif Datei des Benutzers nicht existiert...
echo "Den Benutzer: [B]$var_usr[/B] gibt es nicht!";
}
} 
?>[/CENTER][/td][/CENTER]

[/TR]

[TR]

[LEFT][td][LEFT][URL='https://finale.freesoft-board.to/createnew.php']Registrieren?[/URL][/LEFT][/td][/LEFT]
[/TR]


[/TABLE]

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

PHP:
[TABLE]


[TR]

[LEFT][td][LEFT][B]LoginSystem - Neuregistrierung[/B]
[HR][/HR][/LEFT][/td][/LEFT]

[/TR]

[TR]

[td]Benutzername: [/td]

[/TR]

[TR]

[td]Passwort: [/td]

[/TR]

[TR]

[td]e-Mail: [/td]

[/TR]

[TR]

[LEFT][td][LEFT][HR][/HR][/LEFT][/td][/LEFT]

[/TR]

[TR]


[/TR]

[TR]

[CENTER][td][CENTER]
// Ein paar Variabeln bestimmen...

$var_user = $_POST['neuer_benutzer'];
$var_pass = $_POST['neues_passwort'];
$var_mail = $_POST['neue_email'];
$datei = "benutzer/".$var_user.".lif";
$vorhanden = file_exists($datei);

// Wenn die Datei vorhanden ist soll er nicht weitermachen und einen Fehler ausgeben... andernfalls
// macht er mit der Prozedur weiter...

if(!$vorhanden) {

// Wenn der Registrieren Button gedrückt wurde macht er weiter...

if(isset($_POST['reg'])) {

// Einmal kurz prüfen ob die wichtigen Felder auch nicht leer waren...

if(!empty($var_user) && !empty($var_pass)) {

// Neue Datei schreiben mit Benutzerinformationen...

$eintrag = $var_user."§§".md5($var_pass)."§§".$var_mail;
$f = fopen($datei, "w");
fwrite($f, $eintrag);
fclose($f);

echo "Benutzer wurde hinzugefügt!";
header ("Refresh: 2, URL=index.php");
} else {
echo "Benutzer konnte nicht hinzugefügt werden!";
}
}
} else {
echo "Benutzer ist bereits vorhanden!";
}
?>[/CENTER][/td][/CENTER]

[/TR]


[/TABLE]

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

main.php
PHP:
 session_start(); 
include("auth.php"); 
?>






[U][B]Eingeloggt als:[/B][/U]

[B]Benutzername:[/B] 

[B]Passwort(MD5):[/B] 

[B]e-Mail:[/B] 

[B]SessionID:[/B]

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

PHP:
session_start ();
if (!isset ($_SESSION['lif_benutzer']))
{
header ("Location: index.php");
}
?>

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

PHP:
ob_start ();
unset($check);
session_start ();
session_unset ();
session_destroy ();

header ("Location: index.php");
ob_end_flush ();
?>

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:
 body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:9px;
color:#333333;
background-color:#CCCCCC;
}
input {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:9px;
color:#333333;
background-color:#FEFFFF;
border:1px solid #333333;
}
a {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:9px;
color:#FF6600;
text-decoration:none;
}
 
Cool, sieht interessant aus.

Morgen schau ich mir das zwecks Sicherheit genauer an.

mfg
Tischler
 
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.

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


Gruß
 
cooles tut ... schade nur, dass du so wenig anerkennung ernten konntest!! :'-(

~ C L O S E D ~

ceeyaa.mex
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten