GT: Warum geht das so nicht?

Hi,
also wenn man das Script von der Kommandozeile ausführt, liest es alle Daten ein und schreibt sie nach STDOUT. Warum geht das nicht wenn ich das über einen IIS ausführe?

#!/usr/bin/perl

@AllFiles= glob('*');
&print_data;
print @AllFiles;

sub print_data
{
print "Content-type: text/html\n\n";
print "< html >< title >Daten umbenennen< /title >< body >\n";
foreach $Dateien (@AllFiles)
{
  print "$Dateien< br >";
}
print "< /body >< /html >\n";
}

  1. Hallo,

    guck mal hier:
    < http://www.teamone.de/selfaktuell/forum/messages/74245.html>

    Du hast den MIME falsch angegeben!

    Muß "html/text" heißen! Nicht "text/html".

    Aber den Fehler habe ich auch schon oft gemacht. Solche Dinge können einen wahnsinnig machen, oder? :-)

    Reiner

  2. Moin!

    also wenn man das Script von der Kommandozeile ausführt, liest es alle Daten ein und schreibt sie nach STDOUT. Warum geht das nicht wenn ich das über einen IIS ausführe?

    Kommt mir doch so bekannt vor... Schau mal nach <../../sfarchiv/1999_2/t03170.htm>, aehnlich Probleme hatte ich auch schon, jedoch nicht mit dem glob(), sondern mit command substitution. Ich denke, bei Dir ist die Ursache dieselbe.

    Dein glob() Aufruf veranlasst Perl, eine Shell zu starten (d.h. CMD.EXE unter WinNT), welche dann das eigentliche Dateinamenzusammensuchen macht (wobei mich das ein bisschen wundert, denn CMD macht die Aufloesung des * normalerweise gar nicht, aber scheinbar geht's trotzdem). Jedenfalls schlaegt da dieses Problem mit der I/O-Redirection wohl zu.

    Aber ich rate von glob() sowieso ab. Da geht naemlich auf dem Webserver jedesmal kurz ein Fenster auf, wenn das Script ueber CGI ausgefuehrt wird, was sehr lustig aussieht. Naja, silly Microsoft, was soll man da noch sagen...
    Nimm besser die Funktionen opendir(), readdir() und closedir() (see perlfunc). Dann musst Du zwar noch selber filtern, falls Du nicht alle Dateien haben willst, aber es funktioniert dafuer plattformuebergreifend ohne Probleme.

    Was den Content-type angeht, "text/html" ist richtig.

    So long

    1. Was den Content-type angeht, "text/html" ist richtig.

      Klar, habe ich wieder mal verdreht!

      Reiner

      1. Hi,

        Was den Content-type angeht, "text/html" ist richtig.

        Klar, habe ich wieder mal verdreht!

        passiert Dir öfter, nicht? :-)

        Erst die Obergruppe (text, application...), dann die Spezifikation (text/html, text/plain, application/zip...). Genau wie bei der Anschrift: Erst die Straße, dann die Hausnummer. Und bei einer URI: Erst das Protokoll, dann die Domain, dann der Dateipfad. Und wie bei Chinesen und Bajoranern: Erst der Familienname, dann der Vorname :-)

        Hat schon alles sein System. Man muß es nur finden.

        Cheatah, in diesem Sinne