namen über array in datei schreiben

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

  • namen über array in datei schreiben

    hallo liebe gemeinde!

    ich habe ein php script in das ich schon eine art klickzähler integriert habe. nun möchte ich zum test noch etwas einbauen, dass die beiden integrierten links neben einer zahl auch noch einen namen o.ä. mit übergeben und in eine datei schreiben. was müsste ich zu diesem zweck an meinem script ändern damit das so funzt wie ich mir das vorstelle?
    hier mein code:

    PHP-Code:
    <?php

    class LoadInfo
    {
        
    //Deklaration der Variablen
        
    var $_counter;
        var 
    $folder   = array ();    
        
        
    //Funktion für die Übergabe der Werte (0=fertig mit Laden; 1=beginne mit Laden) der externen Daten
        
    public function pruefestatus ($status$name)
        {
            
    //Falls eine 1 übergeben wurde, dann:
            
    if ($status == 1)
            {
                
    $this -> _counter++;
                
    $this -> folder[$name] = $status;
            }
            
    //Falls eine 0 übergeben wurde, dann:
            
    else if ($status == 2)
            {
                
    $this          -> _counter-- ;
                unset (
    $this -> folder[$name]);
            }
        }
        
        
    //Funktion für die Abfrage was geladen wird
        
    public function getstat ($name)
        {
            
    //Falls die gesuchte Datei geladen wird, wird der Name zurückgegeben
            
    if (isset ($this -> folder[$name]))
            {
                return 
    $this -> folder[$name];
            }
            
    //Falls die gesuchte Datei nicht geladen wird, wird nichts zurückgegeben
            
    else
            {
                return (
    false);
            }
        }
        public function 
    setcounter ($_count)
        {
            
    $this -> _counter $_count;
        }
        
        public function 
    setname ($_names)
        {
            
    $this -> name $names;
        }
    }

    //Testlinks um zu schaun, ob mit dem Übergebenen Status gearbeitet wird (kann nachher entfernt werden)
    echo "<a href='script_flex.php?status=1?'>1 raufzählen</a><br>";
    echo 
    "<a href='script_flex.php?status=2?'>1 abziehen  </a><br>";

    /////Verarbeitung, Öffnen & Schließen, Lesen & Schreiben in die Datei counter.txt/////
    $InfoLoad = new LoadInfo ();

    $LadeInfoc fopen ('counter.txt''r+');
    //-1>=fgets2<=10; -10>=fgets3<=100; -100<=4<=1000; usw.
    $readcounter fgets ($LadeInfoc4);
    fclose ($LadeInfoc);
    $InfoLoad -> setcounter ($readcounter);

    $InfoLoad -> pruefestatus ($_GET ['status']);
    $LadeInfoc fopen ('counter.txt''w+');
    fwrite ($LadeInfoc$InfoLoad -> _counter);
    fclose ($LadeInfoc);



    $LadeInfon fopen ('name.txt''r+');
    $readname fgets ($LadeInfon4);
    fclose ($LadeInfon); 
    //Testausgabe um den $_count Wert auszulesen (kann nachher entfernt werden)
    echo $readname;
    echo 
    $InfoLoad -> _counter"<br><br>";

    ?>

  • #2
    Ich versuche mal aus deinen Angaben und deinem(?) Code zu erraten, was du möglicherweise haben möchtest.
    Übergib doch einfach den Namen als weitern GET-Parameter und schreib ihn dann ins File:
    PHP-Code:
    ...
    echo 
    "<a href='script_flex.php?status=1\&amp;name=Addierer'>1 raufzählen</a><br />";
    echo 
    "<a href='script_flex.php?status=2&amp;name=Subtrahierer'>1 abziehen</a><br />";

    $InfoLoad = new LoadInfo ();

    $LadeInfoc fopen('counter.txt''r');
    $readcounter fgets($LadeInfoc4);
    fclose($LadeInfoc);
    $InfoLoad->setcounter($readcounter);

    $InfoLoad->pruefestatus ($_GET ['status']);
    $LadeInfoc fopen ('counter.txt''w');
    fprintf($LadeInfoc"%d %s"$InfoLoad->_counter$_GET['name']);
    fclose($LadeInfoc);
    ... 
    Gruss
    H2O

    Kommentar


    • #3
      ob dus glaubst oder nicht aber das meinste stammt tatsächlich von mir^^

      danke erstmal für den vorschlag werde den mal testen

      mfg

      Arne (d4n7e)

      Kommentar


      • #4
        hmmm leider passt das net so ganz wie ich mir das vorstelle...

        hätte es gerne so das ich zb 6 links da habe so in der art:

        PHP-Code:
        echo "<a href='script_flex.php?status=1&name=hans'>1 raufzählen</a><br>";
        echo 
        "<a href='script_flex.php?status=2&name=hans'>1 abziehen  </a><br>";
        echo 
        "<a href='script_flex.php?status=1&name=peter'>1 raufzählen</a><br>";
        echo 
        "<a href='script_flex.php?status=2&name=peter'>1 abziehen  </a><br>";
        echo 
        "<a href='script_flex.php?status=1&name=maik'>1 raufzählen</a><br>";
        echo 
        "<a href='script_flex.php?status=2&name=maik'>1 abziehen  </a><br>"
        die namen sollen dann eingetragen werden und wenn man auf den entsprechenden abziehen link klickt wieder gelöscht werden... wäre schön wenn das in ner extra datei ablaufen würde und net in der selben.

        mfg

        Arne (d4n7e)

        Kommentar


        • #5
          Original geschrieben von d4n7e
          hmmm leider passt das net so ganz wie ich mir das vorstelle...
          Dann beschreibe mal klar, wie du dir das vorstellst.
          Wo sollen Namen wie eingetragen oder gelöscht werden.
          Und wenn du eine andere Datei willst, dann schreibs halt in eine andere und ruf dann halt diese auf.
          Gruss
          H2O

          Kommentar


          • #6
            also ich möchte 1 datei haben in der durch die funktion eine art counter gezählt wird. in meinem bsp ist dies die counter.txt. dort steht nur 1 wert drin und das ist auch gut so... so zb wenn ich auf den ersten link klicke zählt er +1, bei klick auf den zweiten -1. das funzt auch alles super!

            in der zweiten datei sollen die namen stehen die die links mit übergeben. die datei heißt bei mir name.txt. bei klick auf den ersten link soll in die datei "hans" geschrieben werden. bei klick auf den dritten link soll "peter" geschrieben werden. klicke ich nun auf den zweiten link soll "hans" aus der .txt datei gelöscht werden.

            so hatte ich mir das vorgestellt.
            ich hoffe das war soweit verständlich wie ich mir das denke.

            mfg

            Arne (d4n7e)

            Kommentar


            • #7
              Eigentlich eine typische Aufgabe für eine Datenbank.
              Aber was solls, den ersten Teil hast du ja schon.
              Dann hängst du den Rest einfach noch dran:
              PHP-Code:
              ...
              $name $_GET['name'];
              $status $_GET['status'];
              $namen file('name.txt');                // File in Array lesen

              if ($status == 1){                        // Addieren
                  
              if (!array_search($name$namen)){
                      
              array_push($namen$name);        // Namen einfügen
                  
              }
              //    else {
              //        Name ist schon vorhanden, also nichts tun
              //    }
              }
              else{                                    
              // Subtrahieren
                  
              if ($key array_search($name$namen)){
                      
              array_splice($namen$key1);    // Namen löschen
                  
              }    
              //    else {
              //        Name ist nicht vorhanden, also nichts tun
              //    }
              }
              file_put_contents('name.txt'implode("\n"$namen)); // File zurückschreiben 
              Gruss
              H2O

              Kommentar


              • #8
                wow danke! das ding is super!!!

                hab allerdings noch 1 frage zu deinem teilscript: wie kommt es, dass der erste eintrag stehenbleibt??? alles andere ist spitze aber der eintrag der als erstes geschrieben wurde verschwindet nicht mehr!?

                btw: mit der DABA haste vollkommen recht! da aber leider keine vorhanden ist bzw die die da ist nicht für diesen zweck genutzt werden kann muss ich auf .txt files ausweichen:-/

                mfg

                Arne (d4n7e)
                Zuletzt geändert von d4n7e; 10.03.2008, 13:56.

                Kommentar


                • #9
                  Original geschrieben von d4n7e
                  ... wie kommt es, dass der erste eintrag stehenbleibt???
                  Das kann ich dir leider nicht sagen, ich weiss aber, dass die Array-Funktionen korrekt funktionieren. Also wirst du deinen Code debuggen müssen. Achte z.B. auf überflüssige Leerzeichen und ähnliche Dinge.
                  Gruss
                  H2O

                  Kommentar


                  • #10
                    ok gut danke nochmal für deine spitzen hilfe! hast mich echt sehr weit voran gebracht! dann werde ich mich mal ein wenig auf die suche machen...
                    viel spass weiterhin beim scripten!

                    mfg

                    Arne (d4n7e)

                    Kommentar

                    Lädt...
                    X