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

CSV Feldweise auslesen

halifax123

Neues Mitglied
Guten morgen alle miteinander. Ich habe mir überlegt, bestimmte Daten zum Zweck eines LogIn Vorgangs aus einer CSV Datei auszulesen.
Das sieht in etwa so aus :

user1; pass1;
user2; pass2;
user3; pass3;
...

Wie kann ich beispielsweise pass1 in einer variablen Speichern? Ich habe es war geschaft, Zeilen auszulesen aber keine Felder.

Hat jemand eine Idee, wie das funktioniert? PHP Codebeispiele wären super, weil ich mich an denen meistens besser zurechtfinden kann.

Danke im vorraus

halifax123
 
danke für die schnelle antwort. Habe es grade versucht, hat geklappt. Ich musste den Inhalt der Datei jedoch in einer Variablen speichern =( , sobald ich explode mit der Datei versucht hatte, hat er mir fehlermeldungen geworfen von wegen die 2 te Stelle ( $test = explode(" ", $data) also $data müsste ein String sein... ?

mfg halifax123
 
hmm ich bin im moment so weit, das ich die komplette zeile ausgeben kann. Das Splitten funktioniert leider noch nich =( :

PHP:
<?php
$usr = $_POST['username'];
$psw = $_POST['password'];
$datei = file_get_contents('../user/user_file.csv');
$handle = explode (" ", $datei);
echo $handle[0];
?>

Sry für den kurzfristigen Edit

mfg halifax
 
Zuletzt bearbeitet:
Musst nun mit deinen Testdaten in einer schleife durchgehen und das auch ejdes mal splitten. Im Endeffekt musst du dir ein mehrdimensionales Array erstellen mit Aufbau:
Code:
$daten[zeile][name]
              [passwort]
 
Moin Moin

Ich halte es in deinem Falle für angebrachter, die Datei gleich zeilenweise in ein Array zu lesen. Geht wunderbar mit file().

Nachfolgender Codeschnipsel ist ungetestet!

PHP:
<?php
    $usr = $_POST['username'];
    $psw = $_POST['password'];

    // Datei zeilenweise in das Array $lines einlesen
    $lines = file('../user/user_file.csv');

    // Mit foreach alle Elemente des Array's $lines durchlaufen
    foreach($lines as $key => $value) {

        // Zeile ($value) anhand eines Semikolons in ein weiteres Array $user_data splitten
        $user_data = explode(';',$value);
 
        // Prüfen der Elemente im Array $user_data
        if($user_data[0] == $usr && $user_data[1] == $psw) {

        }
    }
?>

Ich hoffe es hilft dir ein wenig ;)

Viele Grüße

NewLord
 
Hallo NewLord, danke für den Denkanstoß. Ich werde es nun mal damit versuchen. Was mich jedoch wundert ist die Stelle
foreach($lines as $key => $value) . Mir wird dieser Teil als falsch angezeigt. Was hat $key für eine bedeutung?

mfg halifax123
 
Juhuuu es klappt :P ich hab den Code ein wenig verändern müssen aber es funktioniert ;-)

PHP:
foreach ($lines as $lines){
  $user_data = explode(" ", $lines);
}
if($user_data[0] == $usr && $user_data[1] == $psw) {
  header("Location: protected_index.php");
  }
if($user_data[2] == $usr && $user_data[3] == $psw) {
  header("Location: protected_index.php");
  }
if($user_data[4] == $usr && $user_data[5] == $psw) {
  header("Location: protected_index.php");
  }

Vielen Dank an alle die sich beteiligt haben, habt mir sehr geholfen !

lg halifax123
 
Zurück
Oben