ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
546
546
EMPFEHLEN
-
Es ist so Ich habe eine Userverwaltung...(Login) aber keine Datanbank gebundene. Und ich habe auch ein Anmeldeformular. Nun füllt jemand das anmeldeformular aus. Gibt dabei gleich seinen Usernamen und sein Passwort an. Nun lasse ich eine datei namens $username.txt erstellen. (d.h. die datei heisst so wie er den username angibt + .txt hinten dran)Dort lasse ich Username + PW hineinschreiben. Nun meine frage...Kann ich diese Datei in ein login einlesen, so das der username und das PW automatisch eingebaut werden? Wenn ja wer weiss wie?Also wäre vielleicht ein Login angebracht der irgendwie mit switch und case arbeitet, so das ich es machen kann wie folgt:
-
oder ist so etwas quatsch?Wenn ja kann mir einer vielleicht sagen wie ich den login sonst gestalten könnte ohne datenbanken, oder er erklärt mir datenbanken *g*switch(Variable):
case [Fall1]: [Anweisung1];
....(beliebig weiterführbar eben je nachdem wieviel user sich anmelden)
default: [Anweisung2];
endswitch;
?
THX im Voraus schonmal 2PAc
-
also erstens einmal:
wenn du die dateien ja schon nach den usern benennst (was bei sonderzeichen probleme machen kann), dann muss man ja in der datei erst mal nur noch das passwort speichern.....
also jemand will dich also einloggen.....
dann bekommt man fom formular die beiden variablen $login_name und $login_pass übergeben......
nun kann man erst mal testen, ob der username überhaut vergen ist:
(wenn nciht, gibt man eine fehlermeldung aus)
wenn doch, testet man, ob das passwort übereinstimmt...PHP-Code:if(!file_exists($login_name.'.txt')) echo 'username nicht vergeben';
das passwort würde ich aber nicht einfach so speichern, sondern verschlüsselt.....PHP-Code:else{
$array_datei = file($login_name.'.txt'); //diese variable enthält nun allte zeilen der datei als array
$pass_in_datei = $array_datei[0];
if($pass_in_datei==$login_pass) echo 'erfolgreich eingeloggt';
else echo 'falsches passwort';
}
dazu gibt es in php die funktion md5.....
wenn du also normalerweile das passwort $neues_passwort in die datei $neuer_nick'.txt.' schreiben willst schreibst du dann einfach
rein....PHP-Code:md5($neues_passwort)
bei der abfrage muss dann halt stehen:
PHP-Code:if($pass_in_datei==md5($login_pass)) echo 'erfolgreich eingeloggt';
dazu muss man natürlich sagen, dass diese art, kundendaten zu speichern nich so gut ist und auch unpraktisch...
denn dann hast du irgendwann 100000 dateien auf dem server und das is doof.....
daher würde ich das ganze wie eine pseude datenbank aufziehen.....
du legst also einfach nur eine datei (user.txt) an, in der in jeder zeile name und passwort genau eines users stehn.....
dann musst du beim login nur die datei mit file('user.txt') auslesen und dann in dem array nach dem usernamen suchen und dann schauen, ob das passwort übereinstimmt......
//hoffe ich konnte helfen....
//bad taste
-
und kannst du mir sagen wie das geht weil so erfahren in PHP bin ich noch nicht ...
-
hm naja musst du ja eigendlich immer nur an die datei hinten dran schreiben.......
also das reinschreiben weiss ich net....
is so lang her, das ich mal was mit txt-dateien gemacht hab......
also mal angenommen du hast also ne datei mit ganz vielen zeilen und in jeder zeile stehen die daten von einem user......
dann sollte jede zeile in der form
$nick - $pass(codiert) - $sontiges
sein.....
ich habe jetzt hier ' - ' als trennziechen werwendet....
hierbei musst du jedoch etwas immergleich bileibendes nehemn, was so auch nicht in nick, pass oder sontigem vorkommen darf......
dann liest du also die datei mit file aus....
also
jetzt nemen wir mal ' %%% ' als trenn-zeichenPHP-Code:$array = file('user.txt');
dann würde eine zeile also so aussehen:
$nick %%% $pass(codiert) %%% $sontiges
bzw mit daten:
mein_nick %%% mein_passwort %%% meine_hp
durch das file() bekomme ich also einen array in dem dem eine zeile einem eintrag im array entspricht....
somit wäre dann
$array[0] == mein_nick1 %%% mein_passwort1 %%% meine_hp1
$array[1] == mein_nick2 %%% mein_passwort2 %%% meine_hp2
......usw
jetzt muss man in einer for-schleife den kram i n passwort, nick und bla aufteilen...
das geht mit der funktion explode, bei der einstring durch einen teilstring unterteilt wird.... und ein array mit den einzelnen teilen zurückgegeben wird.....
$temp ist jetzt also ein array (der bei jedem durchlauf der schleife neu belegt wird....PHP-Code:for($i=0;$i<count($array);$i++){
$temp = explode(' %%% ',$array[$i]);
}
$temp[0] ist der nick
$temp[1] ist das passwort (aber verschlüsselt)
$temp[2] ist der rest-kram
jetzt muss man nur noch in jeder schleife nachfragen, ob user-name und passwort mit den login-daten übereistimmen.....
also
und am ende kann man dann eben noch abfragen machen wiePHP-Code:if($login_nick==$temp[0] && md5($login_pass)==$temp1){
$eingeloggt = true;
}
if($login_nick==$temp[0] && md5($login_pass)!=$temp1){
$eingeloggt = false;
$falsches_passwort = true;
}
alles in allem sieht dann so aus:PHP-Code:if($eingeloggt) echo 'erfolgreich eingeloggt';
else{
echo 'konnte nicht einloggen....<br>grund:<br>';
if($falsches_passwort) echo 'falsches passwort eingegeben';
else echo 'es besteht kein account mit dem eingegebenen user-namen....';
}
so das dürfte alles sein....PHP-Code:$array = file('user.txt');
for($i=0;$i<count($array);$i++){
$temp = explode(' %%% ',$array[$i]);
if($login_nick==$temp[0] && md5($login_pass)==$temp1){
$eingeloggt = true;
}
if($login_nick==$temp[0] && md5($login_pass)!=$temp1){
$eingeloggt = false;
$falsches_passwort = true;
}
}
if($eingeloggt) echo 'erfolgreich eingeloggt';
else{
echo 'konnte nicht einloggen....<br>grund:<br>';
if($falsches_passwort) echo 'falsches passwort eingegeben';
else echo 'es besteht kein account mit dem eingegebenen user-namen....';
}
für fehler wird keien haftung übernommen
//bad taste
-
Dank dir du bist ein Schatz *bussigib*
-
hehe...
goil.....
##freu-weil-bussi-bekommen##
-
also ich hab dazu was im MySQL forum schon geschrieben. Kann man auch durch dieses was du erklärt hast, das aufsplitten in einzelne variablen, auch das ganze sortieren nach einem bestimmten kritikpunkt? (z.B. in ner Tablle wie die Bundesligatabelle *g*
nach Punkten, also das die Variablen(Spieler)den Punkten auch richtig zugeordnet werden?) Aber dann kommt wieder die Frage wie lasse ich die bisherigen Punkte mit den durch das Formular abgeschickten addieren und in die txt schreiben? Oder ist es doch besser Datenbanken zu benutzen? Ich brauch dringend hilfe bittteeee das wird nämlich sone Art Turnierseite die ich machen will, auf der Fussballturniere mit dem Spiel Fifa2002 ausgetragen werden. Und da ich nicht alles per hand rein schreiben möchte halt der ganze Käse
-
ja natürlich is der ganze kram nur mit datanbank sinnvoll.....
der kram mit txt-dateien ist nur eine notlösung für leute, die webspace ohne mysql-datanbank besitzen....
wenn man also z.b. diese ergebnisse und so in eine tabelle in ner datenbank schreibt, dann sind diese sortierungen natürlich total einfach...
denn da gibt es ja den order by ...asc/desc befehl, womit man solche sahcen sortieren kann.......
also wenn du die möglichkeit für eine db hast, dann vergiss den kram mit den textdateien ganz shnell und versuche es gleich mit ner db...
//bad taste
Ähnliche Themen
-
Flashplayer 8 geht, 9 geht nicht...
Von BIAsTeR im Forum Flash PlattformAntworten: 0Letzter Beitrag: 26.08.08, 09:20 -
Auswahl in der Selectbox geht geht verloren ...
Von tekton im Forum ASPAntworten: 1Letzter Beitrag: 02.06.06, 20:30 -
exe geht - exe geht nicht - eine Idee
Von olek im Forum Visual Basic 6.0Antworten: 18Letzter Beitrag: 14.09.05, 20:13 -
swf in einem Flashfilm geht, aber maus geht nicht...
Von ksk im Forum Flash PlattformAntworten: 10Letzter Beitrag: 26.10.04, 00:05 -
Ein Thread zu Syntaxspielereien ;-) (Was geht und was geht nicht)
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 01.07.04, 11:26





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren