Sanda: Frames und CGI

Hallo zusammen!

Hab da zwar gestern schon was gepostet, konnte aber leider nicht wirklich viel damit anfangen...war aber mein Fehler, da ich wahrscheinlich die Frage nicht richtig gestellt habe.

Deshalb hier ist ein Auszug aus meinen Skripten:

frames.pl:

#! /usr/bin/perl
print "Content-type: text/html\n\n";
print <<EOF;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<title>AUFTRAEGE</title>
<frameset cols="15%, *" frameborder="1" framespacing="0" border="0">
<frame src="/auftraege/auftragasnavi.htm" name="navi" scrolling="auto" noresize>
<!--#exec cgi="/cgi-bin/auftraege/auftragsmain.pl"-->
<noframes>
Ihr Browser kann diese Seite leider nicht anzeigen!
</noframes>
</frameset>
</html>
EOF

auftragsnavi.htm:

<html>
<head>
<meta name="author" content="Sandra Gaderbauer">
<meta name="content-type" content="text/html, charset=ISO-8859-1">
<meta name="content-style-type" content="text/css">
<meta name="content-language" content="de">
<title>AUFTRAEGE</title>
</head>
<body style="background-color:#FFFF80">
<a href="../cgi-bin/auftraege/auftragsmain.pl" target="main">ALLE AUFTRAEGE</a>
</body>
</html>

auftragsmain.pl:

#! /usr/bin/perl

print "Content-type: html/text;Charset=iso-8859-1\n";
print "\n";
print "<html><head><title>AUFTRAEGE</title></head><body>SANDRA</body>";
print "</html>";

---------------------------------------------------------------------

Wenn ich das ganze dann teste, wird der linke frame zwar richtig angezeigt, jedoch führt er die auftragsmain.pl nicht aus! Konqueror fragt zb ob er auftragsmain.pl öffnen soll!

Kann mir einer sagen, was ich da falsch mache??

Wär echt dankbar!!

lg, Sandra

  1. Hi,

    vermutlich liegt der Fehler hier: "../cgi-bin". Das CGI-Verzeichnis ist üblicherweise serverintern ein Alias und kann daher über /cgi-bin/, ohne weitere Pfadangabe davor angesprochen werden. Versuche es mal ohne die beiden Punkte.

    MfG
    Danny

    1. Hi,

      vermutlich liegt der Fehler hier: "../cgi-bin". Das CGI-Verzeichnis ist üblicherweise serverintern ein Alias und kann daher über /cgi-bin/, ohne weitere Pfadangabe davor angesprochen werden. Versuche es mal ohne die beiden Punkte.

      MfG
      Danny

      Hi back!

      Hab das geändert...Konqueror fragt zwar jetzt nicht mehr, ob er öffnen soll, aber mein Text (also SANDRA) steht trotzdem nicht im 2. Frame!!!

      Hast du vielleicht noch einen anderen Tipp?

      lg, Sandra

      1. print "Content-type: html/text;Charset=iso-8859-1\n";

        Verwende bitte text/html statt html/text.

        1. print "Content-type: html/text;Charset=iso-8859-1\n";

          Verwende bitte text/html statt html/text.

          Danke schön!!! ;-)))))))))))

          Hat geholfen, aber ich bin leider noch immer nicht ganz zufrieden...

          Wenn ich die auftragsmain.pl allein über den Browser aufruf, funktioniert es, aber wenn ich die frames.pl aufrufe, zeigt er nichts an!!

          Hast de auch dafür noch nen Rat? ;-)

          1. Hi,

            Hast de auch dafür noch nen Rat? ;-)

            lies bitte meine erste Antwort in diesem Thread.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
          2. <frame src="/auftraege/auftragasnavi.htm" name="navi" scrolling="auto" noresize>
            <!--#exec cgi="/cgi-bin/auftraege/auftragsmain.pl"-->

            Warum das #exec? Das ist ein SSI-Befehl, der hat in Perl-Dateien eigentlich nichts zu suchen, bzw. wird nicht ausgeführt, sofern der Webserver nicht speziell dafür konfiguriert ist. SSI-Dateien haben normalerweise die Endung .shtml und der Server verarbeitet standardmäßig SSI auch nur in Dateien mit solcher Endung, wenn ich mich nicht irre.

            ;) 'nen Rat: Verwende statt der exec-Zeile einfach:

            <frame src="/cgi-bin/auftraege/auftragsmain.pl" name="main" scrolling="auto" noresize>

            Das Perl-Script wird dann automatisch ausgeführt und die Ausgabe in den Frame geleitet.

            Gruß
            Danny

            1. hey danke!

              ist komisch, denn genauso hatte ich es vorher stehen gehabt und hatte aber nicht funktioniert!

              danke nochmal!

              lg, sandra

  2. Hi,

    Deshalb hier ist ein Auszug aus meinen Skripten:

    schau Dir den Auszug aus dem _erzeugten_ Code an. Erstens ist bei clientseitigen Phänomenen alles andere völlig irrelevant, zweitens wird es erhellend sein.

    #! /usr/bin/perl

    perldoc warnings
    perldoc strict

    print "Content-type: text/html\n\n";

    Das sind keine HTTP-gültigen Umbrüche.

    <!--#exec cgi="/cgi-bin/auftraege/auftragsmain.pl"-->

    Ein Leerzeichen vor dem abschließenden "-->" wird empfohlen.

    Ihr Browser kann diese Seite leider nicht anzeigen!

    Das ist eine falsche und absolut nutzfreie Aussage. Biete alternativen Inhalt.

    Wenn ich das ganze dann teste, wird der linke frame zwar richtig angezeigt, jedoch führt er die auftragsmain.pl nicht aus! Konqueror fragt zb ob er auftragsmain.pl öffnen soll!

    Ein merkwürdiges Verhalten. Es ist aber auch ein merkwürdiger HTML-Code.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes