Problem bei fputs:

  • Hi,
    ich habe ein kleines Problem bei dem Befehl fputs.
    Hier der Code:

    PHP
    <?php
       $text = $_POST["text"];
       $p = $_POST["path"];
       $size = filesize("$p");
    
    
       $datei = fopen("$p","w");
       fputs($datei,"$text",$size);
       fclose($datei);
    ?>

    Beim Aufruf wird folgende Fehlermeldung ausgebeben:

    Warning: fputs(): supplied argument is not a valid stream resource in datei.php on line 32

    Warning: fclose(): supplied argument is not a valid stream resource in datei.php on line 33

    Woran könnnte das liegen?

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  • Hi,
    ich bin mir da jetzt nicht 100%ig sicher aber ich vermute du hast im fopen nen Fehler drin, wundert mich nur, warum nicht die vorherrige Fehlermeldung kommt,.....

    $datei = fopen("$p","w"); => $datei = fopen($p,"w");


    vermutlich schafft php auf "$p" eine Ressource zu stellen, vermutlich NULL, daher kommt dann bei fputs eine Fehlermeldung.

    Grüße
    Methusalix

  • Danke!

    Das war einer der Fehler, jetzt bekomme ich den ERROR des fputs()

    Parse error: parse error, unexpected ')' in datei.php on line 30

    Ich denke mal der erwartet eine Angabe, wieviel er überschreiben soll, aber wie kann ich denn nu angeben, dass er die ganze variabel $text schreiben soll, egal wie lang sie ist?

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  • hmmm probier es mal damit:

    PHP
    <?php 
       $text = $_POST["text"]; 
       $p = $_POST["path"]; 
    
    
       $datei = fopen($p,"w+"); 
       fwrite($datei,$text); 
       fclose($datei); 
    ?>

    Code ist jetzt nicht getestet, sollte aber laufen

    Grüße Methusalix

  • Hmm...also ich bekomme immer den gleichen error wie zuvor!

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  • Probiers mal so:


    Zu finden auf http://de.php.net/manual/de/function.fwrite.php
    Könnte dir auch helfen: http://www.schattenbaum.net/php/datei.php
    oder auch das http://de.php.net/manual/de/function.fopen.php :wink:

  • hallo,

    ich vermute mal du hast einen Apache unter einem Unix-System am laufen.
    Hat apache RW-Access? Lösch am besten mal die Datei und lass sie dann über w+ erstellen. Damit ist owner = apache. Und die Probleme sollten nicht mehr auftreten.

    grüße

  • Danke Danke, ja es ist ein Linux System, aber ob das Apache ist weiß ich nicht. Der Anbieter heißt Plesk!

    Mal ne Frage zu dem Script:
    Wenn ich den Dateizeiger ans Ende setze, wird dann nicht der Inhalt an die Datei angehängt?

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  • Theoretisch ja,..., allerdings ist oben im Skript ein kleiner Beschreibungsfehler unterlaufen :)

    "w+" : read-write, Datei wird auf 0 Byte gesetzt, Zeiger auf Anfang und es wird versucht die Datei zu erstellen, wenn sie nicht existiert

    "a+" : read-write, Zeiger auf Ende, Datei wird versucht zu erstellen, wenn sie nicht existiert

  • Ahh...Thanks;-)
    Ich probiers mal!

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  • Hmm...er gibt aus dass die Datei nicht schreibbar ist!

    Woran kann das denn liegen?
    Muss ich irgendwas am Server einstellen (außer die Rechte)?

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  • Weiß jemand warom das liegt?

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  • Die Rechte sind alle auf 777, also alles an, da sollte kein Problem liegen!
    Gibts sonst noch was? Vllt im php.ini?
    Ich kenne mich dort garnicht aus!

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

  • So also das System funktioniert soweit!
    Es ist nur leider ein weiterer Ferhelr aufgetaucht!

    Wenn ich in die Dtaei schreibe werden vor die " " " automtisch "/" gesetzt!
    Genau das selbe ist es mit den " ' "!

    Woran kann das leigen, bzw. wie kann ich das verhindern?

    Win·dows
    Noun.
    A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.