Variable mit Textdatei vergleichen

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

  • Variable mit Textdatei vergleichen

    Folgendes Problem.

    Ich habe eine Textdatei in der diverse Namen gespeichert sind.
    Die sieht wie folgt aus:
    name1
    name2
    name3
    etc
    Nun gibt jemand über ein Inputfeld seinen Namen ein, der in der Variblen $name gespeichert wird.

    Jetzt soll zuerst geprüft werden, ob der Name schon in der Textdatei existiert, wenn nicht soll er in der Textdatei angefügt werden und existiert er schon soll eine entsprechende Meldung ausgegeben werden.

    Wie realisiere ich das am besten.

    Danke schonmal im Vorraus.

  • #2
    $liste = file("textdatei.txt");
    if (in_array($HTTP_POST_VARS['name'], $liste)){
    print "is schon drin";
    }
    else{
    $fp = fopen("textdatei.txt","a");
    fwrite($fp,$HTTP_POST_VARS['name']);
    fclose($fp);
    }

    so in etwa...
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Danke für deine Antwort, aber das funzt nicht.

      ich hatte es mal mit einer Schleife versucht, doch da hat er immer nur auf den letzten Eintrag in der Textdatei reagiert.

      So in der art
      PHP-Code:
      $fp fopen("list.txt","r");
           if(
      $fp)
           {
            while (!
      feof($fp))
            {

               
      $zeile fgets($fp100);
                        if(
      $zeile == "$name")
               {
                        echo 
      "$name existiert schon";
               
               }

            }
            
      fclose($fp);

           } 
      Vielleicht gibt es noch andere Lösungsansätze.

      Kommentar


      • #4
        habs net getestet is aber klar das hier is vielleicht besser...
        Teste mal aus...

        $liste = file("textdatei.txt");
        foreach($liste as $a){
        $drin = (trim($a)==$HTTP_POST_VARS['name'])? true:false;
        }
        if($drin)echo "Du bist drin";
        else{
        $fp = fopen("textdatei.txt","a");
        fwrite($fp,$HTTP_POST_VARS['name']."\r\n");
        fclose($fp);
        }
        Zuletzt geändert von MelloPie; 14.10.2002, 14:37.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Leider funktioniert auch das bei mir nicht

          Vielleicht sollte ich doch besser Stricken lernen

          Trotzdem, vielen Dank für deine Mühe.

          Kommentar


          • #6
            Also bei mir funzt die Loesung von MelloPie:

            PHP-Code:
            <?php

            // Ab php 4.1.0 das Superglobal benutzen
            $name $_POST["name"];

            $liste file("test.txt");
            if (
            in_array($name$liste)) {
                print 
            "is schon drin";
            } else {
                
            $fp fopen("test.txt","a");
                
            fwrite($fp,$name);
                
            fclose($fp);
            }

            ?>

            Kommentar


            • #7
              Das funktioniert bei mir einfach nicht, und die werte werden trotzdem in das txt-file geschrieben, obwohl sie doppelt sind.

              Du schreibst etwas von :
              // Ab php 4.1.0 das Superglobal benutzen

              Was bedeutet das genau ?

              Meine PHP-Version ist 4.1.1

              Kommentar


              • #8
                Die "neuen" Superglobals ersetzen die "alten" $HTTP_POST_VARS["VAR"] welches man benutzen musste wenn register_globals auf off steht.

                Hmm, warum funzt das bei dir nicht? Hast du vielleicht leerzeichen hinter den Eintraegen in der txt-Datei?

                Kommentar


                • #9
                  Ich habe es jetzt doch anders gelöst.
                  Und noch einmal an meiner ersten Idee angesetzt.

                  Das Problem waren wohl die Zeilenumbrüche, die in der Textdatei enthalten waren.
                  PHP-Code:
                  $fp fopen("list.txt","r");
                       if(
                  $fp)
                       {
                        while (!
                  feof($fp))
                        {

                           
                  $zeile fgets($fp100);
                           
                           if(
                  $name==str_replace("\n","","$zeile"))//das ist die geänderte Zeile

                           
                  {
                           echo 
                  "$name existiert schon";
                           break;
                           }

                        }
                        
                  fclose($fp);

                       }
                     else
                        echo 
                  "Datei wurde nicht gefunden"
                  Das funktioniert jetzt.

                  Kommentar


                  • #10
                    Viele Wege fuehren nach Rom

                    Kommentar


                    • #11
                      Jo - Vor allem bei PHP

                      Trotzdem verstehe ich nicht, wieso eure Version nicht funktionieren wollte

                      Na ja - egal, hauptsache es geht jetzt.

                      Kommentar

                      Lädt...
                      X