Dieter: HTML-Dateien verändern

Hallo Forum!

Meine Frage wäre, ob es bei den Webspaceanbietern normalerweise möglich ist, HTML-Dateien außerhalb des cgi-bins durch ein CGI-Script zu verändern? Meistens kann man diese ja nicht in den cgi-bin kopieren, da sie dort über http nicht aufgerufen werden können.

Danke,
Dieter

  1. hallo,
    normalerweise sollte es möglich sein, diese über relative pfadangaben einzulesen, kommt aber auf den provider an.

    mit PHP geht es auf jeden fall, mach ich ständig, ist recht komfortabel mit relativen pfadangaben.

    wie gesagt wenn es mit "standard-cgi" nicht geht, frag eben beim provider nach, oder ändere die chmod-einstellungen der zu bearbeitenden files im ftp-client.

    Fabian Transchel

  2. Morsche Dieter,

    Fabian hat's ja bereits erwähnt.

    Bei einem "normal" konfiguriertem Webserver solltest Du in der Lage sein, auf alle Verzeichnisse Deines Webspace zuzugreifen.

    Die Verzeichnisstrukturen variieren je nach Serverinstallation, aber

    • entweder, Du hast ein "logisches" Root-Verzeichnis / und darunter Dein CGI-Verzeichnis /cgi-local (oder /cgi-bin)
    • oder Du hast /html und /cgi-local
    • oder so ähnlich

    schreibe ein kleines .pl und packe es in das CGI Verzeichnis, chmod +x,

    use CGI;                             # CGI-Routinen laden.
    $q = new CGI;                        # Neues CGI-Objekt erzeugen.
    print $q->header,                    # HTTP-Header generieren.
          $q->start_html('Hallo Welt'),  # HTML einleiten.
          $q->h1('Absoluter Pfas');      # Level-1-Header
    my $pwd = pwd;
    print "PWD = $pwd";
    print $q->end_html;                  # HTML abschließen.

    pwd
    ^   ^ --> falls Du das nicht kennst, das sind Backticks - führen ein externes Programm aus und liefern den STDOUT zurück, der dann der Variable zugewiesen wird (hier an $pwd).

    Das funktioniert für einen Unix-Server. Bei einem Windows Server müßtest Du (vermutlich)
    my $pwd = cd;
    schreiben.

    Wenn Du dann http://www.deine-url.de/cgi-local/dasProgramm.pl (halt der richtige Name) aufrufst, dann solltest Du den *absoluten* Pfad des CGI-Verzeichnisses sehen. Könnte sein z.B.
    "/u/web/htdoc/deinAccount/cgi-local"
     ^^^^^^^^^^^^^^^^^^^^^^^^^
     das stellt Du beim Open-Befehl jeweils Deinem relativen Pfad voran, also z.B.
    open(FH, '</u/web/htdoc/deinAccount/html/hugo.html') || die;

    viel Erfolg noch!
        K@rl

    1. hallo.

      viel Erfolg noch!

      Ich hatte Erfolg! Das kleine Progrämmchen mit allerdings sehr hohem Nutzen hat mir geholfen. Ich hatte leider immer einen kleinen Fehler im Serverpfad, aber damit ist jetzt Schluss.

      Danke,
      Dieter