Marco: Auslesen fremder Seiten

Hallo
Ich habe ein wirklich komisches Problem.

Und zwar will ich mit diesem Script:

#!/usr/bin/perl

use LWP::Simple;
$doc = get 'http://www.swiss-entry.com;

print $doc, "\n";

den Inhalt einer fremden Seite anzeigen lassen. Leider kommt dabei immer ein "Internal Server Error" heraus.

Ich habe das Perl-Script auf http://www.netfirms.com/ gehostet.

Was könnte das Problem sein?
ich habe keine Ahnung

  1. Ich habe das Programm mal bei mir ausgeführt und hier die
    Fehlermeldung:

    Can't locate LWP/Simple.pm in @INC (@INC contains: /usr/lib/perl5/5.00503/i586-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i586-linux /usr/lib/perl5/site_perl/5.005 .) at test.pl line 3. BEGIN failed--compilation aborted at test.pl line 3.

    Übrigens würde ich dir raten, vor irgend einer Print-Ausgabe ein
    print "Content-type: text/html\n\n"; zu schreiben.

    Gruss Martin

    1. Hoi,

      Ich habe das Programm mal bei mir ausgeführt und hier die
      Fehlermeldung:

      Can't locate LWP/Simple.pm in @INC (@INC contains:
      /usr/lib/perl5/5.00503/i586-linux /usr/lib/perl5/5.00503
      /usr/lib/perl5/site_perl/5.005/i586-linux /usr/lib/perl5/site_perl/5.005 .)
      at test.pl line 3. BEGIN failed--compilation aborted at test.pl line 3.

      Das heisst nur, dass du das Modul 'LWP::Simple' nicht installiert hast.

      An Marcos Stelle wuerde ich mal ein 'use CGI::Carp qw/fatalsToBrowser/;'
      versuchen; ist der Fehler ein Runtime-Fehler, so wird er angezeigt. Ist er
      keiner, aber das Script laeuft daheim einwandfrei, dann ist wohl unter Umstaenden
      das Modul nicht installiert. Ist denn die Datei auch korrekt im ASCII-Modus
      uebertragen worden?

      Gruesse aus dem schoenen LH,
       c.j.k

  2. Sup!

    Was könnte das Problem sein?
    ich habe keine Ahnung

    Das Skript ist falsch ;-)
    Kannst Du ins Error-Log sehen oder das Skript zuhause unter Unix ausprobieren?
    Wenn nein -> schlecht!

    Vielleicht würde auch perldoc LWP helfen.

    Gruesse,

    Bio

    1. Kannst Du ins Error-Log sehen oder das Skript zuhause unter Unix ausprobieren?

      Ich kann es zu Hause ausprobieren und da funktioniert es tadellos!!!

      Genau das ist es ja, was mich stutzig macht. Etwas, dass bei mir geht, kann ja nicht einfach falsch sein.

      1. Sup!

        Genau das ist es ja, was mich stutzig macht. Etwas, dass bei mir geht, kann ja nicht einfach falsch sein.

        Tja, vielleicht hat der Provider LWP::Simple gar nicht installiert?
        (Die Leute machen ja nur Unsinn damit ;-) )

        Gruesse,

        Bio

      2. Hi,

        Ich kann es zu Hause ausprobieren und da funktioniert es tadellos!!!

        Probierst Du es zuhause unter identischen Randbedingungen?
        a) gleiches Betriebssystem?
        b) gleicher Webserver (mit ggf. automatischer Erzeugung fehlender HTTP-Header)?
        c) Gleicher Perl-Interpreter mit gleicher Ausbaustufe an Modulen?

        Genau das ist es ja, was mich stutzig macht. Etwas, dass bei mir
        geht, kann ja nicht einfach falsch sein.

        Doch, natürlich. Nämlich dann, wenn Du Randbedingungen voraussetzt, die bei Dir zufällig existieren und anderswo nicht.

        Ansonsten: Serverseitige Entwicklung ohne Zugriff auf ein error_log ist, äh - Zeitverschwendung.

        Viele Grüße
              Michael

  3. hi!

    $doc = get 'http://www.swiss-entry.com;

    ^ da fehlt ein '

    Leider kommt dabei immer ein "Internal Server Error" heraus.

    Obiges ist auf jeden Fall falsch. Hast du das Skript einfach nur hier
    reinkopiert? Dann liegt es vielleicht daran. Ansonsten kann ein
    "Internal Server Error" an allem möglichen liegen. Zum Beispiel daran,
    dass du einen Syntax-Fehler hast, dass du keinen gültigen HTTP-Header
    ausgibst, dass das Skript nicht ausführbar ist, dass das Modul, das
    du verwenden willst, nicht installiert ist, ...

    Aufschluss darüber, was wirklich nicht funktioniert, liefert dir nur
    das Error-Log deines Providers. Oder die Methode, die Christian dir
    genannt hat.

    bye, Frank!