Erklärungsbedarf eines Codeschnippsels

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Erklärungsbedarf eines Codeschnippsels

    Hallo,

    ich habe folgende quellcode schnippsel gefunden und versuche die zu verstehen. wohl gemerkt bin ich ein absoluter newbee.

    $l_usr = $_POST[ 'p_user' ];
    $l_passwd = $_POST[ 'p_password' ];
    $f = fopen( '\users.dat', 'r' );
    if ( $f != false ) {

    while ( !feof( $f ) )
    {
    $line = fgetcsv( $f, 1000, ',' );
    if ( $line[0] == $l_usr ) {

    if ( $line[1] == $l_passwd )

    Verstehe ich das richtig? Zuerst über die Superglobalen $_Post p_user und p_password geholt und in die Variablen $l_user abgelegt.
    dann wird mit fopen, die datei users.dat zum lesen (wegen des r am Anfang der Datei) geöffnet, das wird der $f variablen zugewiesen.
    Ja, dann fangen bei mir so die Schwierigkeiten an.
    Zuerst die Überprüfung ob die Datei vorhanden ist.
    Was genau heißt das:
    while ( !feof( $f ) ) ???? Wenn der Dateizeiger nicht am Ende der Datei ist? Ich dachte es müsste
    while ( feof( $f ) ) heissen, also wenn der Dateizeiger am Ende ist soll eine Zeile gelesen werden mit fgetcsv( $f, 1000, ',' ); .
    Und warum 1000 als Position des DAteizeigers? Damit ich sicher sein kann, dass es wirklich am Ende ist?
    Die nächsten beiden versteh ich leider auch nicht ganz.
    if ( $line[0] == $l_usr ) {
    Soll hier vergliechen werden, ob $l_user geil $line an der Position 0 ist ?
    if ( $line[1] == $l_passwd )

    Bitte recht einfach erklären.Danke
    branco

  • #2
    Re: Erklärungsbedarf eines Codeschnippsels

    Original geschrieben von branco
    Was genau heißt das:
    while ( !feof( $f ) ) ???? Wenn der Dateizeiger nicht am Ende der Datei ist? Ich dachte es müsste
    while ( feof( $f ) ) heissen, also wenn der Dateizeiger am Ende ist soll eine Zeile gelesen werden
    feof heißt, das Ende der Datei wurde erreicht, es gibt jetzt keine weiteren Zeilen mehr, die gelesen werden könnten.

    Deshalb: So lange noch nicht feof(), lese eine weitere Zeile ein.

    Und warum 1000 als Position des DAteizeigers? Damit ich sicher sein kann, dass es wirklich am Ende ist?
    Diese 1000 hat nichts mit dem Dateizeiger zu tun, sondern gibt an, wie lang eine "Zeile", die die Funktion einliest, maximal sein darf.
    http://www.php.net/manual/de/function.fgetcsv.php
    Die nächsten beiden versteh ich leider auch nicht ganz.
    if ( $line[0] == $l_usr ) {
    Soll hier vergliechen werden, ob $l_user geil $line an der Position 0 ist ?
    if ( $line[1] == $l_passwd )
    fgetcsv liest eine Zeile aus einer CSV-Datei ein, und liefert dir die einzelnen "Spalten" als Array.

    Es wird hier also geprüft, ob der Inhalt der ersten Spalte des aktuellen Datensatzes mit dem angegebenen Usernamen identisch ist - und wenn ja, wird auch noch verglichen, ob in der zweiten Spalte das angegebene Passwort steht.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ah DANKE!!
      So macht das natürlich Sinn.

      Habe das also die funktionsweise von fgetcsv( $f, 1000, ',' ); nicht richtig verstanden. Jetzt aber.

      Danke und Grüße
      branco

      Kommentar

      Lädt...
      X