• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Überprüfen, ob User schon existiert

  • Ersteller Ersteller dementia
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
D

dementia

Guest
So, habe mir mithilfe eines Tutorials ein einfaches Loginscript geschrieben.
Zu bewundern unter http://dementia.funpic.de/blubbl/register.php

Die Userdaten werden in textdateien ($user.txt) gespeichert.
Wenn sich nun aber ein user registriert, und der Name ist schon vorhanden, wird der alte einfach überschrieben.

Wie kann ich überprüfen ob die datei user/$name.txt schon existiert?
Hier der Code der register_check.php:

[php:1:df7e51c915]<?php
if(isset($name) && isset($passwort));
{
touch ("user/$name.txt");
$passwort = md5($passwort);
$datei_lesen = fopen("user/$name.txt", "r");
$inhalt = fread($datei_lesen, 99999);
fclose($datei_lesen);
$eintrag = "$name|$passwort";
$neuer_inhalt = $eintrag.$inhalt;
$datei_schreiben = fopen("user/$name.txt", "w");
fwrite($datei_schreiben, $neuer_inhalt);
fclose($datei_schreiben);
}

if(isset($name) && isset($alter));
{
touch ("daten/$name.txt");
$passwort = md5($passwort);
$datei_lesen = fopen("daten/$name.txt", "r");
$inhalt = fread($datei_lesen, 99999);
fclose($datei_lesen);
$eintrag = "$name|$wohnort|$alter \n";
$neuer_inhalt = $eintrag.$inhalt;
$datei_schreiben = fopen("daten/$name.txt", "w");
fwrite($datei_schreiben, $neuer_inhalt);
fclose($datei_schreiben);
die("Registrierung erfolgreich! <a href=login.php>Zum Login!</a>.

Hier deine Daten:
Name:$name
Wohnort:$wohnort
Alter:$alter");
}
?>[/php:1:df7e51c915]

Bitte mit Beispielen; ich bin ein ziemlicher PHP Noob.

mfg
dementia
 
Oh, das is ja gar nicht mit mysql. Tut mir Leid. Muss eben editieren.
EDITING... PLEASE WAIT :roll:

EDIT:
Mist, jetz hat das schon jemand bemerkt >.< Und auch ne Antwort gegeben :cry: - :wink:
Egal
 
äh crackpod es geht um dateien. *HUST*
dementia einfachmit file_exists() oder so ähnlich den dateinamen ueberpruefen..
aber mit datenbank is einfacher
 
Hallo,

abgesehen davon, dass in dem Skript noch einige Fehler vorhanden sind, wie z.B., dass man die Felder auch leer lassen kann und damit eine Rückmeldung "Registrierung erfolgreich" bekommt, folgendes:

Allgemein würde ich Login-Skripte, wenn möglich immer mit Anlehnung an eine MySQL-Datenbank, programmieren (sagt man das so? "mit Anlehnung an eine MySQL-Datenbank"?).

Tutorial: http://www.php-einfach.de/tuts_mysql_login.php

Wie so etwas mit Textdateien geht, das weiß ich leider nicht. Aber vielleicht steht hier die Antwort: http://php-einfach.de/tuts_php_login_sessions_dateien.php


Liebe Grüße,
L.T.M
 
Danke schonmal, probier ich gleich aus :)
Mit MySQL kenn ich mich noch nicht so toll aus, ist aber in Arbeit *g*

Name und Passwort sind jetzt auch Pflichfelder..

mfg
dementia
 
Ich habs jetzt mal so versucht:

[php:1:6cbf7c4e3b]<?php
if(file_exists(user/$name.txt));
{
echo "Der Benutzername existiert leider schon!";
}

else {
touch ("user/$name.txt");
...
?>[/php:1:6cbf7c4e3b]

Da bekomm ich aber immer ne Fehlermeldung :?

mfg
 
L.T.M schrieb:
Allgemein würde ich Login-Skripte, wenn möglich immer mit Anlehnung an eine MySQL-Datenbank, programmieren
Tja... es gibt solche, die haben PHP - aber weder Session-Unterstützung noch Datenbank...
 
Hallo,

flapo, dann sollte man kein Login-Skript benutzen, denn sonst könnte man (wenn man die URL weiß) die Seite, auf die man nach einem erfolgreichen Login weitergeleitet wird auch direkt aufrufen - unsicher.


Liebe Grüße,
L.T.M
 
L.T.M schrieb:
flapo, dann sollte man kein Login-Skript benutzen, denn sonst könnte man (wenn man die URL weiß) die Seite, auf die man nach einem erfolgreichen Login weitergeleitet wird auch direkt aufrufen - unsicher.
Hm... Wenn die Seite mit einem Passwort geschützt ist, stellt das mMn kein Problem dar. Wenn allerdings das Passwort in einer *.txt-Datei steht...
 
Wenn man die Seite direkt aufruft. Wie soll dann ohne Sessions überprüft werden, ob der User sich vorher überhaupt eingeloggt hat?
 
nur vom Gedanken her:
User regt sich->eine Datei die den Usernamen als Dateinamen hat. Und als Inhalt ein PW das gehashed wurde.
User logt sich ein->Überprüfung auf Existenz der Datei. Vergleich des PWs
Bei erfolg:
Eine 2. Temporäre Datei wird erstellt, die besagt der User ist eingeloggt und ein cookie gesetzt. Wenn man es nicht über Cookies machen will: Nimm eine UID, die du per GET überträgst. Wo ist das Problem?
 
Daran habe ich gar nicht gedacht. Aber für jeden Login eine Datei erstellen..ist doch sehr aufwendig, bzw. umständlich und kostet Zeit.
 
ich hab ja gesagt, es ist langsam ;ugl beim logout wird die Datei wieder gelöscht oder auch von nen (Pseudo-)CronJob (dann allerdings erst nach ner gewissen Zeitspanne) um den sevrer nicht zu sehr zu belasten.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben