fputs fclose -> not a valid stream resource

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

  • fputs fclose -> not a valid stream resource

    Hallo,

    ich bin noch Anfänger!

    PHP Version 4.3.10

    Das Script liefert das gewünschte Ergebnis, Datum und ClickID werden mit den ECHO Befehlen richtig angezeigt.

    Die Datei daten.333 existiert und ist leer (Rechte 777).

    Aber was ist hier falsch?

    Hier das kurze Script:

    [PHP]
    <?php

    // datei
    $datei = "daten.333";

    function clickzaehlen ($click)
    {
    $datum = date("d.m.y.");
    echo $datum;
    echo $click;
    $handle = fopen($datei,"w"); //w+,a habe ich auch probiert
    fputs($handle, "$click / $datum\n"); //auch bei einfachem Text "test"
    fclose ($handle);
    };

    ?>
    [PHP]

    Der ECHO Befehl ist OK -> Ergebnis -> 30.03.06.3

    Fehlermeldung:

    Warning: fputs(): supplied argument is not a valid stream resource
    in /var/www/..... cc.php on line 12

    Warning: fclose(): supplied argument is not a valid stream resource
    in /var/www/..... cc.php on line 13

    /var/... ist gekürzt!

    Einen Counter der ebenfalls diese Befehle benutzt funktioniert einwandfrei.

    Vielen Dank
    Kaninchen

  • #2
    Ich wette, file_exists($datei) direkt vorm fopen() liefert false. Entweder weil die Datei nicht im aktuellen Verzeichnis liegt oder weil $datei was anderes enthält, als du uns hier glauben machen willst.

    Kommentar


    • #3
      schon mal darauf gekommen dass
      "$datei" in der funktion clickzaehlen gar nicht
      vorhanden ist? ....

      setz mal $datei in die function rein z.b. so:
      PHP-Code:
      function clickzaehlen($click)
      {
              
      $datei "daten.txt";    
              
      $datum date("d.m.y.");
          echo 
      $datum;
          echo 
      $click;
          
      $handle fopen($datei,"w"); //w+,a habe ich auch probiert
          
      fputs($handle"$click / $datum\n"); //auch bei einfachem Text "test"
          
      fclose($handle);
      }; 
      shit happens

      Kommentar


      • #4
        Danke für die schnelle Hilfe!

        @Magic11
        Das war's!
        Danke.

        Kommentar


        • #5
          So hätte es auch klappen sollen
          PHP-Code:
          <?php
          $datei 
          "daten.333"

          function 
          clickzaehlen ($click)
          {
              
          $datum date("d.m.y.");
              echo 
          $datum;
              echo 
          $click;
              
          $handle fopen($GLOBALS['datei'],"w"); //w+,a habe ich auch probiert
              
          fputs($handle"$click / $datum\n"); //auch bei einfachem Text "test"
              
          fclose ($handle);
          }
          ?>
          Alle Vars die im globalen Namensraum definiert werden, sind auch global. In Funktionen muss man auf Globale Vars aber mittels dem Array $GLOBALS['name_der_var'] zugreifen.

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            @kaninchen: gern geschehen.

            @jahlives: an dich auch danke weil somit hab ich auch grad wieder was dazu gelernt
            shit happens

            Kommentar


            • #7
              @Magic11
              auch gern geschehen. Hier lernt man echt bei fast jedem Post wieder was neues

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                bin natürlich vollkommen eurer meinung, obwohl die superglobalen meines erachtens schon zum grundwissen gehören.

                simpel wäre natürlich auch der direkte aufruf über die funktion gewesen
                PHP-Code:
                function clickzaehlen ($click$datei
                das aber nur als Ergänzung.
                [color=blue]...ich sehe was, was du nicht siehst...und das ist der QUELLTEXT![/color]

                Kommentar


                • #9
                  PHP-Code:
                  function clickzaehlen ($click$datei
                  Wenn du aber datei schon im globalen Namensraum definiert hast, würde ich auf den Parameter verzichten
                  Nur auch als Ergänzung

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    das läge ja dann an der art des aufrufes. Mittels

                    PHP-Code:
                    clickzaehlen("blah""Datei.txt"
                    hätte sich die vorherige deklaration ja erübrigt. aber wie gesagt, ich weiss ja nicht wie sein sonstiger code aussieht. Für mein verständnis benutze ich ja eine funktion um diese desöfteren mit anderen werten aufzurufen, mit der $GLOBALS ist das zwar gewährleistet, aber ich würde immer eine zeile mehr schreiben wenn ich mit der gleichen funktion verschiedene dateien abfragen möchte. also zuerst variable festlegen, und dann funktion aufrufen anstatt den dateinamen direkt in die funktion zu packen.

                    o.k. genug kluggeschissen
                    [color=blue]...ich sehe was, was du nicht siehst...und das ist der QUELLTEXT![/color]

                    Kommentar

                    Lädt...
                    X