tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
546
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    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:
     

  2. #2
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    switch(Variable):
    case [Fall1]: [Anweisung1];
    ....(beliebig weiterführbar eben je nachdem wieviel user sich anmelden)
    default: [Anweisung2];
    endswitch;
    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* ?
    THX im Voraus schonmal 2PAc
     

  3. #3
    Registriert seit
    Dec 2001
    Ort
    bei frankfurt (hessen)
    Beiträge
    230
    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)

    PHP-Code:
      if(!file_exists($login_name.'.txt')) echo 'username nicht vergeben'
    wenn doch, testet man, ob das passwort übereinstimmt...

    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';
      } 
    das passwort würde ich aber nicht einfach so speichern, sondern verschlüsselt.....
    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
    PHP-Code:
      md5($neues_passwort
    rein....

    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
     

  4. #4
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    und kannst du mir sagen wie das geht weil so erfahren in PHP bin ich noch nicht ...
     

  5. #5
    Registriert seit
    Dec 2001
    Ort
    bei frankfurt (hessen)
    Beiträge
    230
    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
    PHP-Code:
      $array file('user.txt'); 
    jetzt nemen wir mal ' %%% ' als trenn-zeichen
    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.....

    PHP-Code:
      for($i=0;$i<count($array);$i++){
        
    $temp explode(' %%% ',$array[$i]);
      } 
    $temp ist jetzt also ein array (der bei jedem durchlauf der schleife neu belegt wird....

    $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
    PHP-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;
      } 
    und am ende kann man dann eben noch abfragen machen wie
    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....';
      } 
    alles in allem sieht dann so aus:

    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....';
      } 
    so das dürfte alles sein....

    für fehler wird keien haftung übernommen

    //bad taste
     

  6. #6
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    Dank dir du bist ein Schatz *bussigib*
     

  7. #7
    Registriert seit
    Dec 2001
    Ort
    bei frankfurt (hessen)
    Beiträge
    230
    hehe...
    goil.....
    ##freu-weil-bussi-bekommen##

     

  8. #8
    2Pac 2Pac ist offline Mitglied Platin
    Registriert seit
    Jun 2002
    Ort
    Salzwedel
    Beiträge
    605
    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
     

  9. #9
    Registriert seit
    Dec 2001
    Ort
    bei frankfurt (hessen)
    Beiträge
    230
    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

  1. Flashplayer 8 geht, 9 geht nicht...
    Von BIAsTeR im Forum Flash Plattform
    Antworten: 0
    Letzter Beitrag: 26.08.08, 09:20
  2. Antworten: 1
    Letzter Beitrag: 02.06.06, 20:30
  3. exe geht - exe geht nicht - eine Idee
    Von olek im Forum Visual Basic 6.0
    Antworten: 18
    Letzter Beitrag: 14.09.05, 20:13
  4. swf in einem Flashfilm geht, aber maus geht nicht...
    Von ksk im Forum Flash Plattform
    Antworten: 10
    Letzter Beitrag: 26.10.04, 00:05
  5. Antworten: 0
    Letzter Beitrag: 01.07.04, 11:26