Thomas Fritz: CGI Problem: automatische Ausführung

Hi Leute,

ich habe folgendes Problem:

Wenn ich auf eine Seite komme, sollen zwei Dinge geschehen:

  1. Es soll automatisch eine andere Seite geladen werden (also mit <meta http-equiv="refresh"...).
  2. Gleichzeitig soll ein CGI-Befehl abgesetzt werden (und ich denke, dafür eignet sich CGI), der eine Nachricht (z.B. als mail, oder wie auch immer)  ausgibt, das diese Seite aufgerufen wurde.

Hintergrund: Ich muß auf einer Homepage einige Seiten verschieben, ich weiß aber nicht, von wo überall Links auf diese Seiten sind. Um dann zu merken, wenn diese Seite aufgerufen wird, will ich benachrichtigt werden, daß sie aufgerufen wurde. Damit weiß ich immer noch nicht, von wo sie aufgerufen wurde, aber ich weiß zumindest, daß ich irgendwo noch nen Link ändern muß. Und zu allem Überfluß soll der Benutzer davon nix mitbekommen, also weder ne Counter-Anweisung, die mitzählt, noch nen Button.

Vielleicht könnt ihr mir ja helfen.

Danke im Voraus
   Thomas

  1. Hallo Thomas,

    1. Es soll automatisch eine andere Seite geladen werden (also mit <meta http-equiv="refresh"...).
    2. Gleichzeitig soll ein CGI-Befehl abgesetzt werden (und ich denke, dafür eignet sich CGI), der eine Nachricht (z.B. als mail, oder wie auch immer)  ausgibt, das diese Seite aufgerufen wurde.

    Am besten leitest Du den <meta http-equiv="refresh"... gleich auf das CGI-Script. Das gibt dann mit Hilfe von print-Befehlen den gewuenschten HTML-Code der anderen Seite an den Browser aus, und kann ansonsten noch tun und lassen was es will.

    Viele Gruesse
      Stefan Muenz

    1. Hallo Thomas,

      1. Es soll automatisch eine andere Seite geladen werden (also mit <meta http-equiv="refresh"...).
      2. Gleichzeitig soll ein CGI-Befehl abgesetzt werden (und ich denke, dafür eignet sich CGI), der eine Nachricht (z.B. als mail, oder wie auch immer)  ausgibt, das diese Seite aufgerufen wurde.

      Am besten leitest Du den <meta http-equiv="refresh"... gleich auf das CGI-Script. Das gibt dann mit Hilfe von print-Befehlen den gewuenschten HTML-Code der anderen Seite an den Browser aus, und kann ansonsten noch tun und lassen was es will.

      Wobei er allerdings dann nur die Seite mitbekommt, die diesen refresh-Tag
      enthielt.

      1. Moeglichkeit, die Access_log, da muesste eigentlich drin stehen, wer wo zugreift

      2. Moeglichkeit, statt refrech lieber ein verstecktes Bildchen, das dynamisch erzeugt wird.
          zb Counter. Abfrage mit Perl $ENV{ 'HTTP_REFERER'} (Hier eventuell: www.webhits.de)

      Prinzipell ist das aber alles Spielkram, und man kann es auch uebertreiben ;-)

      gruesse

      Stefan R . Mueller

  2. Hi Thomas,

    Hintergrund: Ich muß auf einer Homepage einige Seiten verschieben, ich weiß aber nicht, von wo überall Links auf diese Seiten sind.

    wenn ich dich recht verstehe, geht es "nur" um deine eigenen Seiten. Waer es da nicht einfacher mit Suchbefehlen nach Links auf die Seiten, die du verschiebst zu suchen, und dann die Aenderungen vorzunehmen.
    (Unter Linux z.B. findet "find" alle Zeilen wo sowas in allen Dateien eines Verzeichnisses vorkommt und gibt eine Liste mit Datei und Zeile aus. Aehnliches ist auch mit Perl zu machen - frag mich (aber die anderen) nicht wie.) Z.B. Suche, wo ueberall href=index.htm vorkommt, weil es nach "/neu/index.html" verschoben wurde.

    Tschuess
    Olaf

  3. Hallo!

    Hintergrund: Ich muß auf einer Homepage einige Seiten verschieben, ich weiß aber nicht, von wo überall Links auf diese Seiten sind. Um dann zu merken, wenn diese Seite aufgerufen wird, will ich benachrichtigt werden, daß sie aufgerufen wurde. Damit weiß ich immer noch nicht, von wo sie aufgerufen wurde, aber ich weiß zumindest, daß ich irgendwo noch nen Link ändern muß. Und zu allem Überfluß soll der Benutzer davon nix mitbekommen, also weder ne Counter-Anweisung, die mitzählt, noch nen Button.

    Ich denke aber, man sollte den Benutzer auf den Umbau hinweisen, damit er seine Bookmarks ändern kann.

    Deine eigenen Links bekommst Du in den Griff, indem Du die "alten" Seiten vorübergehend löschst, und dann ein Link-check-Tool (z. B. Linbot, Linkbot oder online den Site-Inspector) "drüberjagst", die finden alle toten Links.

    URLs zu diesem Thema:
    http://siteinspector.linkexchange.com/
    http://www2.imagiware.com/RxHTML/
    http://starship.skyport.net/crew/marduk/linbot/
    http://tetranetsoftware.com/products/linkbot.htm

    HTH,
    markus

  4. Sorry, aber ich habe noch einen Nachschlag :-)

    Um dann zu merken, wenn diese Seite aufgerufen wird, will ich benachrichtigt werden, daß sie aufgerufen wurde. Damit weiß ich immer noch nicht, von wo sie aufgerufen wurde, aber ich weiß zumindest, daß ich irgendwo noch nen Link ändern muß.

    Wenn Du anstelle der alten Seiten gleichbenannte phtml- oder SSI-Seiten machst, bekommst du in fast allen Fällen die ürsprüngliche Seite als "HTTP_REFERRER"-Environment-Variable o. ä. mitgeteilt (auch bei externen Seiten). Damit kannst Du Dir den Link mitteilen lassen - nach einer Weiterleitung mittels Meta kann es sein, daß deine Weiterleitungsseite als Referrer gilt. (Wie lauten hier die genauen RFC's?)