tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
252
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Loddar1 Loddar1 ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    97
    Hi Leute,
    Ich möchte Userdaten auslesen, aber immer nur vom eingeloggtem User uas einem Flatfile.
    Im Flatfile steht zB:
    1|Username|passwort|Name|eMail|
    2|Username|passwort|Name|eMail|
    3|Username|passwort|Name|eMail|
    usw.
    Bekomme aber nur den Usernamen hier mal ein auszug:
    PHP-Code:
    $userdat "daten.db";
    $fp fopen("$userdat","r");
    $lines=file("$userdat");
    $newlines array_reverse($lines);  
    $entry explode ("|"$_SESSION[username]); 
    $uid $entry[0];
    $username $entry[1];
    $passw $entry[2];
    $realname $entry[3];
    $email $entry[4];

    echo
    'Userprofil von '.$_SESSION['username'].' ID: '.$uid.
    Ich möchte erreichen das nur die Zeile komplett ausgelesen wird, wo der Username existiert.
    Wie kann ich einen Filter setzen das eine ausgabe erfolgt mit Username zB
    Max ID 2
    oder
    Heinz ID 3

    Danke schon mal...
    Geändert von Loddar1 (03.01.12 um 15:35 Uhr)
     

  2. #2
    jannicars jannicars ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    219
    Warum nicht mit Datenbanken arbeiten?
    Datenbanken sind viel schneller und alles ist einfacher zu handeln!
    Geändert von jannicars (03.01.12 um 16:34 Uhr)
     

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Eine DB wäre sicher schön - doch geh ich mal davon aus, dass du deine Gründe hast.

    du musst den explode() auf die Zeile anwenden, nicht auf den username der Session. Zudem musst du die Zielen auch durchgehen...

    PHP-Code:
    $userdat "daten.db";
    $lines=file("$userdat");
    //Alle Zeilen durchgehen
    foreach($lines as $line){
        
    //Die Infos der Zeile in die Variablen schreiben
        
    list($uid$username$passw$realname$email) = explode('|'$line);
        
    //Prüfen ob der username übereinstimmt
        
    if($username == $_SESSION['username']){
            
    //Wenn ja, die Schleife verlassen. Die Variablen bleiben gesetzt        
            
    break;
        }
    }

    echo 
    "Userprofil von {$_SESSION['username']} ID: {$uid}."
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  4. #4
    Loddar1 Loddar1 ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    97
    Habe keine Datenbank.

    Danke Yaslaw funktioniert einwandfrei******
    Jetzt kann ich weiter machen...
     

  5. #5
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Du solltest vielleicht eine Klasse mit den Kernfunktionalitäten einer Flatfile-Datenbank implementieren.
    Ein Ansatz z.B.:
    PHP-Code:
    class TFlatfileDB
    {
      private 
    $filename;
      public 
    $data;

      public function 
    Load($filename$fieldDelimiter)
      {
         
    $this->filename $filename;
         
    $this->fieldDelimiter $fieldDelimiter;
         
    $this->ReadData();
      }
      public function 
    ReadData()
      {
         
    $this->data = array();

         
    $lines=file($this->filename);
         foreach(
    $lines as $line)
         {
           
    $this->data[] = explode($this->fieldDelimiter$line);
         }
      }

    Und um jetzt den aktuellen Benutzer zu suchen:
    PHP-Code:
    $DB = new TFlatfileDB;
    $DB->Load('daten.db');

    foreach ( 
    $DB->data as $record )
    {
      if ( 
    $record[1] == $_SESSION['username'] )
      {
        
    // $record enthält alle Informationen des angemeldeten Benutzers
        // ...
        
    break;
      }

     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

Ähnliche Themen

  1. komme nicht weiter!
    Von boennchen im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 04.10.05, 12:23
  2. Komme bei MaxTut nicht weiter
    Von Gonzo28 im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 18.08.05, 02:15
  3. Komme da nicht weiter :-(
    Von Yael_17 im Forum PHP
    Antworten: 22
    Letzter Beitrag: 05.12.04, 15:24
  4. Komme da nicht weiter :-(
    Von nizzan im Forum PHP
    Antworten: 6
    Letzter Beitrag: 28.11.04, 00:16
  5. Komme nicht weiter
    Von nixwisser im Forum ASP
    Antworten: 1
    Letzter Beitrag: 11.10.02, 12:14