Sirius: Link im Textfeld

Hallöle..
Ich habe ein Textfeld in dem ich einen Link zu einer Datei eingebe..

<form action="act.php" method="post">
<input name="addy" type="text" style="width:100%">
<input name="submit" type="submit" value="Ok">
</form>

In dieses Textfeld schreibe ich wie gesagt einen Link in folgender Form:

http://www.url.de/text.txt

In der "act.php" steht nun folgendes:

$datei = fopen($_POST['addy'],'r');

while (!feof($datei)){
   $zeile = fgets($datei,1024);
   echo $zeile;
}
fclose($datei);

Das Problem ist, dass es aus irgendeinem Grund nicht klappt.. Komischerweise gehts aber, wenn ich im Code direkt schreibe:

$datei = fopen('http://www.url.de/text.txt','r');

Hat jemand eine Idee?

  1. Hello,

    <form action="act.php" method="post">
    <input name="addy" type="text" style="width:100%">
    <input name="submit" type="submit" value="Ok">
    </form>

    In dieses Textfeld schreibe ich wie gesagt einen Link in folgender Form:

    http://www.url.de/text.txt

    In der "act.php" steht nun folgendes:

    $datei = fopen($_POST['addy'],'r');

    while (!feof($datei)){
       $zeile = fgets($datei,1024);
       echo $zeile;
    }
    fclose($datei);

    Was hast Du denn zur Ermittlung der Fehler bisher getan?
    Hast Du Dir $_POST['addy'] mal ausgeben lassen?
    Hast Du den Fehlermeldungs-Level auf 2047 (E_ALL) eingestellt?

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Was hast Du denn zur Ermittlung der Fehler bisher getan?
      Hast Du Dir $_POST['addy'] mal ausgeben lassen?
      Hast Du den Fehlermeldungs-Level auf 2047 (E_ALL) eingestellt?

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      Beides ja.. E_ALL ist sowieso in jeder Seite drin, weils im header Template steht.. Und die Ausgabe der POST Variable ist der korrekte Link.. Deswegen kann ich mir auch absolut nicht vorstellen, wieso es nicht geht..

      1. Hello,

        Beides ja.. E_ALL ist sowieso in jeder Seite drin, weils im header Template steht.. Und die

        Ausgabe der POST Variable ist der korrekte Link.. Deswegen kann ich mir auch absolut nicht
        vorstellen, wieso es nicht geht..

        Weil da vielleicht noch Leerzeichen im Spiel sein könnten?

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hello,

          Beides ja.. E_ALL ist sowieso in jeder Seite drin, weils im header Template steht.. Und die

          Ausgabe der POST Variable ist der korrekte Link.. Deswegen kann ich mir auch absolut nicht
          vorstellen, wieso es nicht geht..

          Weil da vielleicht noch Leerzeichen im Spiel sein könnten?

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          Habs gerade noch 3 mal überprüft.. Es wird definitiv der korrekte Link ausgegeben.. Aber trotzdem wird die Datei scheinabr nicht geöffnet..

          1. Hello,

            Habs gerade noch 3 mal überprüft.. Es wird definitiv der korrekte Link ausgegeben.. Aber trotzdem wird die Datei scheinabr nicht geöffnet..

            Hast Du denn mal das Handle $datei überprüft, ob eines geleifert wird?

            Harzliche Grüße vom Berg
            http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau

            1. Hello,

              Habs gerade noch 3 mal überprüft.. Es wird definitiv der korrekte Link ausgegeben.. Aber trotzdem wird die Datei scheinabr nicht geöffnet..

              Hast Du denn mal das Handle $datei überprüft, ob eines geleifert wird?

              Harzliche Grüße vom Berg
              http://www.annerschbarrich.de

              Tom

              Es ist doch wirklich merkwürdig..
              Auch wenn ich den Link vorher in eine Variable speichere:

              $url = "http://www.url/text.txt";

              und dann fopen aufrufe:

              $datei = fopen($url, "r");

              Es geht einfach NICHT!! Es geht nur wenn ich den Link direkt bei fopen angebe.. Sobald ich eine Variable verwende funktioniert es nicht..

              1. Hello,

                Es geht einfach NICHT!! Es geht nur wenn ich den Link direkt bei fopen angebe.. Sobald ich eine Variable verwende funktioniert es nicht..

                Das ist jetzt aber ein Witz, oder?
                Und Fehlermeldungen gibt es auch nicht?
                Was liefert denn

                echo $datei;

                nach dem fopen()?

                Harzliche Grüße vom Berg
                http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau

                1. Hello,

                  Es geht einfach NICHT!! Es geht nur wenn ich den Link direkt bei fopen angebe.. Sobald ich eine Variable verwende funktioniert es nicht..

                  Das ist jetzt aber ein Witz, oder?
                  Und Fehlermeldungen gibt es auch nicht?
                  Was liefert denn

                  echo $datei;

                  nach dem fopen()?

                  Harzliche Grüße vom Berg
                  http://www.annerschbarrich.de

                  Tom

                  Nein, kein Witz.. Mir ist eigentlich auch net zum Lachen zumute, weil ich bald den PC aus dem Fenster werfe:D..

                  echo $datei;

                  liefert: Resource id #14

                  1. Hello,

                    Nein, kein Witz.. Mir ist eigentlich auch net zum Lachen zumute, weil ich bald den PC aus dem Fenster werfe:D..

                    echo $datei;

                    liefert: Resource id #14

                    *Würmerausdernasezieh*

                    Mit Variable auch?
                    Oder nur bei direkter Übergabe des Strings?

                    Hast Du den Webserver mal neu gestartet?
                    Welche PHP-Version auf welchem OS hast Du installiert?

                    Harzliche Grüße vom Berg
                    http://www.annerschbarrich.de

                    Tom

                    --
                    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                    Nur selber lernen macht schlau

                    1. Also das war jetzt bei einer Variable in der ich den Link zwischengespeichert habe..

                      Kann man irgendwo nachsehen, was die verschiedenen Resource ID´s zu sagen haben?

                      1. Also das war jetzt bei einer Variable in der ich den Link zwischengespeichert habe..

                        Kann man irgendwo nachsehen, was die verschiedenen Resource ID´s zu sagen haben?

                        Ein Stück weiter bin ich aber.. Wenn die Datei bei mir lokal auf dem Server liegt, gehts ohne PRobleme..

                        1. Hello,

                          Also das war jetzt bei einer Variable in der ich den Link zwischengespeichert habe..

                          Kann man irgendwo nachsehen, was die verschiedenen Resource ID´s zu sagen haben?

                          Die Ressource-ID ist ein Handle auf eine interne Verwaltungsliste des Systems.
                          Wenn Du eine erhältst, solltest Du die Ressource auch auslesen können.

                          ggf. ist die Angabe von 1024 Bytes für ein Packet zu groß. Setz da mal 128 Bytes ein.
                          Das würde auch erklären, dass der Wrapper die Ressource lesen kann, wenn sie lokal liegt. Da schein in PHP noch eine Macke zu sein.

                          Harzliche Grüße vom Berg
                          http://www.annerschbarrich.de

                          Tom

                          --
                          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                          Nur selber lernen macht schlau

                          1. Hello,

                            Bist Du schon eingeschlafen?

                            Die Ressource-ID ist ein Handle auf eine interne Verwaltungsliste des Systems.
                            Wenn Du eine erhältst, solltest Du die Ressource auch auslesen können.

                            ggf. ist die Angabe von 1024 Bytes für ein Packet zu groß. Setz da mal 128 Bytes ein.
                            Das würde auch erklären, dass der Wrapper die Ressource lesen kann, wenn sie lokal liegt. Da schein in PHP noch eine Macke zu sein.

                            Nimm außerdem statt fgets() mal fread().
                            Könnte sein, dass der (Denk-)Fehler im PHP in der Bufferung liegt.

                            also

                            $datei = fopen($_POST['addy'],'rb');

                            while (!feof($datei))
                              {
                                $zeile = fread($datei,128);
                                echo $zeile;
                              }
                              fclose($datei);

                            Das sollte aber funktionieren!

                            Harzliche Grüße vom Berg
                            http://www.annerschbarrich.de

                            Tom

                            --
                            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                            Nur selber lernen macht schlau