Steffen Wiederhöft: HILFE !!! Neues Fenster mit CGI-Datei

Hallo an alle,

vielleicht kann mir jemand helfen:
Ich habe mir HTML und Perl selbst beigebracht und programmiere für meine Firma im Intranet eine Seite mit Datenbankanbindung.
Es funktioniert alles auch soweit einwandfrei, nur ist einiges meiner Meinung nach sehr umständlich realisiert.

Problem:
Ich mache eine Passworteingabe und frage dieses mit einem CGI-Script ab (meine CGI-Scripts laufen nur mit der Endung .pl - ich nutzte den OMNIHTTPD-WEB-Server). Danach generiere ich mit dem Skript ein Fenster mit einem Link auf meine eigentliche Hauptseite.

Ich würde aber gerne ohne dieses Zwischenfenster direkt vom CGI-Skript auf meine Hauptseite springen, habe es aber nicht geschafft (mit JavaScript-Einbindung versucht).
Er erkennt meine JavaScriptEinbindung nicht.

Hier der Abschnit meines CGI-Scripts:

--SCHNIPP---

print "Content-Type: text/html\n\n";
print "<HTML><TITLE>Start</TITLE>";
print "<BODY BGCOLOR=#000099 LINK=#FFFF00 VLINK=#FFFF00>";

if ($form{'PASSWORT'} ne $passwort)
{
 print "<FONT SIZE=5 COLOR=#FF0000><CENTER>Das eingegebene    Passwort ist ungültig.<BR></CENTER></FONT>";
 exit;
}
else
{
 print '<SCRIPT LANGUAGE='JAVASCRIPT'>";
 print '<!-- window.open("../Pfad/index.html","Fenster2","width=100%,height=100%"); //-->';
 print "</SCRIPT>";
}

print end_html;

--SCHNIPP--

Wenn ich das in einer normalen HTML-Datei verwende funktioniert das einwandfrei.

Was kann ich tun, muß ich ändern/beachten ???

Danke an alle die mir helfen !!!!
Steffen

  1. Hallo Steffen!

    Wenn ich das in einer normalen HTML-Datei verwende funktioniert das einwandfrei.

    Also imho hat JavaScript nichts damit zu tun, ob die Datei nun dynamisch generiert oder als statische Datei auf dem Server liegt.

    Ich habe zwar kaum ahnung von JS, aber ich würde mal den JS-Teil als Funktion in den head nemen, und diese Funktion per onload im body aufrufen, oder auch direkt per onload window.open() aufrufen, sollte auch gehen nehm ich an.

    MfG
    Götz

    1. Also imho hat JavaScript nichts damit zu tun, ob die Datei nun dynamisch generiert oder als statische Datei auf dem Server liegt.

      Ich habe zwar kaum ahnung von JS, aber ich würde mal den JS-Teil als Funktion in den head nemen, und diese Funktion per onload im body aufrufen, oder auch direkt per onload window.open() aufrufen, sollte auch gehen nehm ich an.

      Das habe ich auch schon versucht, aber es kam auch nur ein weißes Fenster.
      Wo füge ich denn das mit dem onload ein ? Auch in meinem Script-Bereich ?
      Ich vermute, daß es nicht funktioniert, da ich das mit print ausgeben ... aber wie kann ich es anders machen ????

      Trotzdem schon mal Danke

      1. Hallo Steffen!

        Wo füge ich denn das mit dem onload ein ? Auch in meinem Script-Bereich ?

        <body *bla* onload="window.open();">
        oder so. (wie gesagt, hab kaum Ahnung von JS)

        Ich vermute, daß es nicht funktioniert, da ich das mit print ausgeben ... aber wie kann ich es anders machen ????

        Ich wüßte nicht, was das damit zu tun haben könnte, weil das Perl-Script läuft azf dem Server, und JS auf dem Client, die beiden Dinge haben eigentlich _nichts_ miteinander zu tun.

        Schau dir mal den Quelltext an, den dein Script produziert, wenn zumindest mal ein leeres Fenster aufging hat ja wenigstesn irgendwas funktioniert.

        MfG
        Götz

        1. <body *bla* onload="window.open();">
          oder so. (wie gesagt, hab kaum Ahnung von JS)

          Hey, das hat funktioniert, aber leider wird so immer ein Fenster geöffnet, auch wenn mein Passwort falsch ist !
          Ich mache in meinem CGI-Script eine If abfrage -  wenn das PW falsch ist kommt eine Standartausgabe, wenn es richtig ist, dann soll das Fenster aufgehen. Aber in den Else-Zweig kann ich ja das onload nicht reinschreiben oder doch ???

          Aber schon mal danke für die Tips bisher !!!

          1. Hallo Steffen!

            Paß einfach Deien Ausgabe entsprechend an ... *mom* ich schau kurz in deinem ersten Posting...

            print "<HTML><TITLE>Start</TITLE>";

            Hier kommt die erste if-Schleife, wenn das Paßwort korrekt ist, wird das JS eingebunden, wenn nicht, dann bleibts draußen.

            print "<BODY BGCOLOR=#000099 LINK=#FFFF00 VLINK=#FFFF00>";

            Hier kannst du entweder nocheinmal in einer if-Schleife das Paßwort prüfen, oder du hats in der 1. if-Schleife eien Variable gesetzt, die Du dann hier ausgibst.
            (In die Variable kannst Du ja den onload-Aufruf reinschreiben, wenn das Paßwort richtig ist, und sie einfach leer lassen, wenn es falsch ist.)

            MfG
            Götz

          2. Hi,

            Aber in den Else-Zweig kann ich ja das onload nicht
            reinschreiben oder doch ???

            Der Herr sprach: "Noah, es kommt jetzt eine Flut.
            Zieh die Jacke aus, setze ab den Hut!
            Nimm dir eine Axt, fang unverzüglich an,
            hol Sem, Ham und Japhet und bau dir einen Kahn!"

            Noah sprach: "Herr, ich glaub das kann ich nicht!"

            Der Herr sprach: "Noah, mach kein störrisches Gesicht!
            Du weißt nie, was du kannst, bevor du es versuchst.
            Jetzt geh und hole Bauholz! (auch wenn du leise fluchst)" (http://www.hjp.at/lyrics/bruce_low/noah.html)

            Viele Grüße
                  Michael

  2. Hallo Steffen,

    ich glaube hier ist der Fehler

    print '<SCRIPT LANGUAGE='JAVASCRIPT'>";

    ^                 ^          ^ ^
              Anfang            End?         Ende == "?

    Gruß
    ROland

    1. Hallo Steffen,

      ich glaube hier ist der Fehler

      print '<SCRIPT LANGUAGE='JAVASCRIPT'>";
                ^                 ^          ^ ^
                Anfang            End?         Ende == "?

      Ist nur ein Tippfehler von mir ... im Programm ist es so:

      print '<...="..">';