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

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

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
 
Werbung:
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
 
Werbung:
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
 
Werbung:
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...
 
Werbung:
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...
 
Werbung:
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?
 
Werbung:
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