Robert Kuhlemann: Wie unterdrücke ich STDOUT bei Aufruf des Servers?

Hallo,
ja wie geht denn sowas?
xxx.htm ruft über Server xxx.pl auf und will kein html und keine
leere Seite zurück und auch kein history.back() und nix.
xxx.htm soll einfach nur da stehenbleiben und xxx.pl soll irgendwas
machen und sich NICHT zurückmelden.
Weiß jemand, wie man sowas hinkriegt?

mfg Robert

  1. Hi

    Mit SSI gehts.
    Beschreibung gibts im selfHTML:
    http://selfhtml.teamone.de/cgiperl/intro/ssi.htm

    Benutze den Befehl cgi="[CGI-Pfad/CGI-Programm/Script]" und beachte, dass das CGI Script nicht in die Standardausgabe schreibt.

    Greetz Oli

    Hallo,
    ja wie geht denn sowas?
    xxx.htm ruft über Server xxx.pl auf und will kein html und keine
    leere Seite zurück und auch kein history.back() und nix.
    xxx.htm soll einfach nur da stehenbleiben und xxx.pl soll irgendwas
    machen und sich NICHT zurückmelden.
    Weiß jemand, wie man sowas hinkriegt?

    mfg Robert

    1. hi,

      beachte, dass das CGI Script nicht in die Standardausgabe schreibt.
      ******** **** *** *** *********************************************
      *** das war meine frage!

      mfg Robert

      Hi

      Mit SSI gehts.
      Beschreibung gibts im selfHTML:
      http://selfhtml.teamone.de/cgiperl/intro/ssi.htm

      Benutze den Befehl cgi="[CGI-Pfad/CGI-Programm/Script]" und

      ******** **** *** *** *********************************************
      beachte, dass das CGI Script nicht in die Standardausgabe schreibt.
      ******** **** *** *** *********************************************

      Greetz Oli

      Hallo,
      ja wie geht denn sowas?
      xxx.htm ruft über Server xxx.pl auf und will kein html und keine
      leere Seite zurück und auch kein history.back() und nix.
      xxx.htm soll einfach nur da stehenbleiben und xxx.pl soll irgendwas
      machen und sich NICHT zurückmelden.
      Weiß jemand, wie man sowas hinkriegt?

      mfg Robert

      1. Hallihallo

        BEGIN
        {
           close STDOUT;   # vielleicht muss man gar nicht erst schliessen
           open(STDOUT, "/dev/null");  # oder eine temporäre Datei
        }
        [...]

        Aber Achtung: Manche Webserver terminieren, oder killen sogar den Prozess, wenn STDOUT geschlossen wird. Falls dies geschieht, kommst du nicht darum herum, alle print's zu entfernen, oder mit # zu versehen.

        Viele Grüsse

        Philipp

  2. Hallo,

    ja wie geht denn sowas?
    xxx.htm ruft über Server xxx.pl auf und will kein html und keine
    leere Seite zurück und auch kein history.back() und nix.

    xxx.html ruft nie und nimmer eine anderes Seite auf, weder Script noch statisch. Das mach immer der Browser, sobald der Benutzer desselben eine entsprechende Aktion ausführt.

    xxx.htm soll einfach nur da stehenbleiben und xxx.pl soll irgendwas
    machen und sich NICHT zurückmelden.

    Und wenn der Browser einen HTTP-Request absetzt, dann erwartet er _zwingend_ eine Antwort, sonst kommt eine Fehlermeldung (Server nicht gefunden, keine Daten übertragen...).
    Der Server ist also vom HTTP-Protokoll her verpflichtet irgendwas zurückzusenden, wenn das Script keine Ausgabe durchführt, dann gibts einen Fehler.
    An einem neuen Seitenaufbau kommst Du also nicht umhin.

    Was bleiben da noch für Möglichkeiten?

    Mir fällt spontan nur ein, daß Du eventuell ein Frameset verwenden kannst und dazu in einem Teil die Datei xxx.html darstellen, welche dann im anderen Frame (so klein, daß man es kaum sieht) den benötigten Request ausführt.

    Meiner persönlichen Meinung nach würde ich Dir aber abraten. Die Anwender erwarten, daß etwas passiert, wenn sie irgendwo drauftipseln, zumindest einen Neuaufbau der Seite. Das ist ein browserübliches Verhalten. Wenn Du dies umgehst, so gibts IMHO nur Verwirrungen.

    Grüße
      Klaus

    1. Hallihallo

      Mir fällt spontan nur ein, daß Du eventuell ein Frameset verwenden kannst und dazu in einem Teil die Datei xxx.html darstellen, welche dann im anderen Frame (so klein, daß man es kaum sieht) den benötigten Request ausführt.

      Oder ein verstecktes Bild.
      <img src="/cgi-bin/bla.pl" width=1 height=1>

      Viele Grüsse

      Philipp

  3. xxx.htm ruft über Server xxx.pl auf und will kein html und keine
    leere Seite zurück und auch kein history.back() und nix.
    xxx.htm soll einfach nur da stehenbleiben und xxx.pl soll irgendwas
    machen und sich NICHT zurückmelden.
    Weiß jemand, wie man sowas hinkriegt?

    http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5