Moin.
Ja, PERL, Path, etc. das war alles schon OK.
Ja, wenn ich geich richtig gelesen hätte ;-)
Warum kann man den nicht weglassen z.B. href="/cgi-bin/Test.pl", wenn TinyWeb doch wissen sollte, was das Root-Verzeichnis ist?
Das weiß TinyWeb auch, ich vermute, Du hast entweder Deine HTML-Seite nicht mit http://localhost/... aufgerufen, sondern als File im Browser geöffnet oder eine Adressbasis in Deiner Seite festgelegt, die eben woanders "hinzeigt". Es muß so gehen, die Du es oben geschrieben hast.
Funktioniert das mit dem localhost hoffentlich dann auch auf dem öffentlichen Server, ich möchte ja schliesslich nicht alle meine HMTL Dateien wieder editieren?
Natürlich nicht... localhost gibt es auf dem öffentlichen Server auch, nur "zeigt" es nicht auf Dein Web-root. Außerdem: hast Du schon Webspace mit Perl? Wie sind dort die Pfade, ist cgi-bin auch das cgi-Verzeichnis? Wenn nicht, mußt Du sowieso ändern... Aber so, wie Du es ursprünglich gemacht hast (relative Angaben), ist es besser, es erspart auch bei einem Serverumzug viel Arbeit.
Es gibt übrigens einen Trick, die zukünftige Webadresse "auf Deinen Rechner zu legen" (weiß nicht, wie ich es sonst nennen soll).
Im Windowsverzeichnis liegt unter system32\drivers\etc\ die Datei hosts. Das ist so etwas wie ein "lokaler DNS"
Trage hier z.B. folgendes ein (nur die Domain, nicht irgendwelch Pfade):
127.0.0.1 www.meinedomain.de
Dann kannst Du im Browser http://www.meinedomain.de/ eintippen und Du landest auf Deinem lokalen Webserver, der ja an localhost, also 127.0.0.1 lauscht. Aber beachte: URLs, die dort eingetragen sind, erreichst du nicht mehr im Internet. Wenn Du also Deine zukünftige Domain schon kennst, trage sie dort ein. Und vergiß nicht, sie rechtzeitig wieder zu löschen ;-)
Aber nun ergibt sich eine noch weitere Frage:
Wie schaffe ich es, dass dieses PERL Skript NICHT dazu führt, dass eine neue blanke Seite aufgerufen wird?
Ich möchte lediglich, dass das PERL Skript im Hintergrund etwas liest oder schreibt und nicht die aktuelle HTML Seite verändert oder nochmals neu geladen wird. Wie erreicht man das? ...target=???
Dein Script muß einen passenden Status Code zurückgeben, dafür gibt es den Status Code "204 No Content". Bisher macht Dein Script so etwas: print "Content-type: text/html\n\n"; Der Browser erwartet Inhalte, es kommt nix, also bleibt die Seite leer. Dort sollte das stehen: print "HTTP/1.0 204 No Content\n\n";
Aber: Der Surfer klickt auf den Link und wundert sich, daß nichts passiert. Also klickt er nochmal. Und nochmal. Willst Du das?
Also dann doch vielleicht eine Seite ausgeben, mit dem Hinweis, das er geklickt hat. Das kannst Du z.B. mit einem redirect machen, Dein Script kann abhängg vom Ergebnis auf unterschiedliche Seiten lenken:
print "Status: 302 Found\n";
print "Location: $location\n";
Wobei $location die URL der Seite enthält.
Gruß Frank