Problem mit fopen

  • Zitat

    Warning: fopen(feedbacks) [function.fopen]: failed to open stream: Permission denied in ... on line 103

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

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

    Stammen aus:

    Code
    $datei = fopen("feedbacks","w+");
        fputs($datei,$eintrag);
        fclose($datei);

    Wie muss ich das verstehen? dass mein web-hoster die funktion "fopen" nicht unterstützt?

  • PHP hat nicht genügend Zugriffsrechte auf den entsprechenden Ordner. Ich weis nicht ob man das selbst umstellen kann, das müsste im Confixx gehen, sofern vorhanden.

    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  • ouu ... ich hab leider überhaupt gar keine erfahrungen damit.
    ich benutze FileZilla ... würdest du mir bitte sagen wie sowas geht?

  • google -> filezilla chmod -> der erste Treffer. Muss schwer sein, mal selber nach solchen Sachen zu suchen. :(

  • joah danke aber mal ne andere frage ... mit fopen("feedbacks.txt","w+"); kann ja immer nur ein beitrag entstehen. und mit "a" hängen sich die neuen einträge ja dann hinten an. gibt es eine möglichkeit die neunen beiträge vorne anzuhängen?

  • Auch eine sehr schöne Frage. Wurde bestimmt auch schon millionenfach gestellt, aber einfach mal in der FAQ nachsehen, ist ja auch hier leider nicht möglich. :( Nee, nee, nee, etwas mehr Eigeninitiative wäre schon nicht schlecht!

    13.4. Wie kann ich in einer Datei eine Zeile einfügen oder löschen?
    http://www.php-faq.de/q/q-datei-einfuegen.html

  • habs mal so gelöst:

    Code
    $zeilen = file("feedbacks.txt");
    $write = fopen('feedbacks.txt', 'w');
    fputs($write, implode("\r\n", array_merge(array($eintrag), $zeilen)));
    fclose($write);
    
    
    include("feedbacks.txt");

    (code ist nicht von mir geschrieben)

    jedoch bekomme ich bei den ERSTEN eintrag zwei fehlmeldungen. der weiteren einträge jedoch keine mehr.

    Zitat

    Warning: file() [function.file]: Unable to access feedbacks.txt in ... on line 106

    Warning: file(feedbacks.txt) [function.file]: failed to open stream: No such file or directory in ... on line 106

    line 106 wäre dann:
    $zeilen = file('feedbacks.txt');

    kann mir jemand sagen wie ich das problem lösen kann?

  • Ich bin mir nun nicht sicher, aber ggf braucht file() ganz zu anfang schon etwas in der feedbacks.txt ;)

    @phpfan: dacht ich auch zuerst, dass es nicht gefunden wird, aber bei späteren einträgen klappt es ja problemlos ;)

    hier, sollte klappen, der alte inhalt wird immer HINTEN drangehängt ;) (neuster eintrag==vorne):

  • Die Datei existiert definitiv nicht, sonst würde PHP nicht meckern. Erst nachdem etwas in die Datei geschrieben wurde, kann diese auch existieren. Aber wozu gibt es file_exists? Damit lässt sich das doch klären.

  • Shyne, etwas genauer was für Fehlermeldungen, wäre schon sinnvoller gewesen ;)
    Denn bei mir gibt's wohl wie bei dir auch eine Variable $eintrag, dh du müsstest deine dann $eintrag1 oder so nennen und es dan nso aussehen lassen:

    Code
    <?
      $datei_lesen = fopen("feedbacks.txt", "r");
      $inhalt = fread($datei_lesen, 99999);
      fclose($datei_lesen);
      $eintrag = $eintrag1;
      $neuer_inhalt = $eintrag.$inhalt;
      $datei_schreiben = fopen("feedbacks.txt", "w");
      fwrite($datei_schreiben, $neuer_inhalt);
      fclose($datei_schreiben);
    ?>
  • Da fragt man sich, warum man einen ordentlichen Quelltext schreibt, wenn dann doch wieder jemand eine fehleranfällige Version hinterschiebt.