Nun haben wird die Scriptausgaben, hier will ich nun paar kleine Beispiele bringen für den Praxiseinsatz.
Nehmen wir an ich habe ein Script welches auf verschiedenen Servern eingesetzt wird und ich brauche einen Link im Script mit der vollen URL.
Dazu würde dann folgender Link ausreichen:
<a href="http://$ENV{'HTTP_HOST'}$ENV{'SCRIPT_NAME'}">Linktext</a>
Hierbei spielt es dann keine Rolle ob das Script in z.B.
http://www.domain.de/cgi-bin/script.pl eingesetzt wird oder wenn die URL so lauten würde: http://www.domain.de/cgi-bin/verzeichnis/unterverzeichnis/script.pl
TIPP!
So, wer sich nun die Scriptausgabe ansieht wird sehen das bei SCRIPT_FILENAME Der volle Serverpfad zu dem gestarteten Script steht.
Beispiel: SCRIPT_FILENAME: /home/pfad/htdocs/cgi-bin/verzeichnis/datei.pl
Nun brauch ich aber vielleicht den Pfad ohne den Dateiname (datei.pl oder andere). Was tun?
Nun mit dem Kleinen Codeschnipsel unterhalb kann ich den Dateiname aus dem Pfad entfernen.
$verz = "$ENV{'SCRIPT_FILENAME'}";
$verz =~s/\/password.\S+$/\//isg;
Brauche ich dann im Script den vollen Pfad zu dem Verzeichnis um z.B. weitere Unterverzeichnisse ansprechen zu können reicht die Angabe $verz
die in dem Falle dann zurückliefert /home/pfad/htdocs/cgi-bin/verzeichnis/ So kann ich dann, wenn das Script auf einem anderen Server installiert wird, ohne große Konfigurationsanpassungen das Script nutzen - es findet ja quasi seine Pfade selbst.
Genauso kann ich umgekehrt auf tieferliegende Unterverzeichnisse verweisen:
$verz = "$ENV{'SCRIPT_FILENAME'}";
$verz =~s/\/password.\S+$/\/unterverzeichnis\/datei.cgi/isg;
|