loginsystem
marc
- perl
Hi,
hab mal 2 Fragen zum Loginsystem.
http://aktuell.de.selfhtml.org/artikel/php/loginsystem/ <- da steht unter dem login.php Beispiel das man die Usernamen + Passwörter auch in einer Textdatei speichern könnte und sie dadurch auch abgerufen werden können (Zitat:''Hier sind sowohl Benutzername als auch Passwort im Quelltext fest einprogrammiert – denkbar wäre aber zum Beispiel auch die Abfrage von Benutzerdaten aus einer Datenbank oder einer Textdatei, so dass mehrere Benutzernamen eingerichtet werden können.'')
Wie geht das?
Frage 2:
Würde es auch funktionieren, dass wenn sich ein User registriert, er sofort in diese Textdatei übertragen wird und sich einloggen kann?
Bitte um hilfe,
Gruß Marc
Hi,
entschuldigung , wollte das eig bei PHP speichern, hab mich aber verdrückt ;)
Hi,
entschuldigung , wollte das eig bei PHP speichern, hab mich aber verdrückt ;)
Pech gehabt ;-)
Hier eine mögliche Lösung in PERL:
Q: Wie kann ich in einem PERL Script anhand einer Passworddatei welche mit *htpasswd* angelegt
wurde eine Authentifizierung vornehmen?
A: Auch PERL bietet die crypt() funktion. Jedes encryptetes Passwort hat am Anfang genau zwei
Zeichen welche das zum Crypten verwendete *Salt* zeigen.
Mit diesem *Salt* wird das zur Authentifizierung eingetippte Passwort gecrypted und das Ergebnis
ist bei Übereinstimmung der Passworte dasselbe.
Hier ein Beispiel:
$uid = 'roro';
$pas = 'roro';
print ispasswd($uid,$pas),"\n";
sub ispasswd{
my ($uid, $pas) = @_;
while(<DATA>){
chomp;
my ($name,$in) = split /:/, $_;
my $salt = substr $in,0,2;
my $cpas = crypt($pas,$salt);
if( $uid eq $name and $in eq $cpas){
#print "$uid $name | $cpas $in\n";
return 1;
}
}
return 0;
}
__END__
roro:bN638DMXoBPnw
ulla:XU0x7/..K2S1o
otto:ukfIWWsz9rYa6
--roro
Die Funktion file laedt dir die Zeilen als Elemente in ein Array und gibt dieses zurueck. Daran kannst du bspweise nun eine neue Zeile (Format musst du halt selbst definieren. Sicher gut ist das .htaccess Format [username]:[password])
Schau mal Codebeispiel: (Keine Garantie auf syntaktische Richtigkeit oder Fluechtigkeitsfehler!)
/*
* BEISPIEL USER-DATEI
* Uwe:md5verschl
* Peter:md5verschl
*/
define ('user_file', pfad_deiner_datei);
function get_userData_by_username($username)
{
$registered_user = file(user_file);
foreach ($registered_user as $i=>$user_data)
if (strpos($user_file,$username) !== false)
return explode(':', $user_data)
}
function save_userData($username, $password)
{
$handle = fopen(user_file, 'w');
flock($handle, 2);
while (!feof($handle))
{
fputs ($handle, fgets($handle, 4000));
}
fputs($handle, $username.':'.$password);
flock($handle, 3);
}