Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3181[/thread]

fehlerhafte Ausgabe von PATH_TRANSLATED



<< >> 6 Einträge, 1 Seite
GwenDragon
 2006-02-10 16:27
#29830 #29830
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Auf einem Webhosting wird anscheinend ein falsches PATH_TRANSLATED ausgegeben.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
DOCUMENT_ROOT = /kunden/homepages/3/d9/htdocs
PATH_INFO = /test/index.html/ui
PATH_TRANSLATED = /kunden/homepages/3/d9/htdocs/cgi-bin/test/index.html/ui
QUERY_STRING = a=99;l=8
REDIRECT_QUERY_STRING = a=99;l=8
REDIRECT_SCRIPT_URI = http://www.meine.seite/cgi-bin/env.pl/test/index.html/ui
REDIRECT_SCRIPT_URL = /cgi-bin/env.pl/test/index.html/ui
REDIRECT_URL = /cgi-bin/env.pl/test/index.html/ui
REQUEST_URI = /cgi-bin/env.pl/test/index.html/ui?a=99;l=8
SCRIPT_FILENAME = /kunden/homepages/3/d9/htdocs/cgi-bin/env.pl
SCRIPT_NAME = /cgi-bin/env.pl
SCRIPT_URI = http://www.meine.seite/cgi-bin/env.pl/test/index.html/ui
SCRIPT_URL = /cgi-bin/env.pl/test/index.html/ui

PATH_TRANSLATED muss doch /kunden/homepages/3/d9/htdocs/test/index.html/ui
anstatt  /kunden/homepages/3/d9/htdocs/cgi-bin/test/index.html/ui  lauten

PATH_TRANSLATED = DOCUMENT_ROOT + PATH_INFO  ???

/EDIT: Lokal auf Apache läuft es. Auf dem Server nicht mehr, trotz gleicher Apache-Version.\n\n

<!--EDIT|GwenDragon|1139592153-->
GwenDragon
 2006-02-10 19:21
#29831 #29831
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Nachtrag: Das Problem betrifft CGI + Webhosting bei 1&1.


Habe mal gegooglet.
Das sieht mir irgendwie danach aus, als ob CGIWrap PATH_TRANSLATED zerstückelt.

Mal sehen, was der Support rausbekommt.

PS: Wehe eineR verläßt sich auf die Definitionen des CGI-Standards.
pq
 2006-02-10 19:48
#29832 #29832
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
aber interessant, anscheinend funktioniert bei denen mittlerweile PATH_INFO.
nach esskars aussage hat das mal nicht funktioniert (war leer)\n\n

<!--EDIT|pq|1139593743-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
cbxk1xg
 2006-02-10 20:09
#29833 #29833
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Das Problem kenne ich gut. Insbesondere von 1&1. Die haben auch mal scherzhafterweise die Document_Root von einigen Webhostingpaketen geändert ohne ihre Kunden darüber zu informieren. Das macht Spaß, vor allem bei RewriteRules die sich auf die (von Hand eingetragene) Document_Root beziehen. Ich habe ewig gebraucht um rauszufinden warum die Content Managent Systeme meiner Kunden nicht mehr liefen. Die hatte einfach nur den Pfad verlängert in dem sie "/home" vor die bestehende Document Root gesetzt haben.

Deshalb versuche ich bei CGIs immer ausgehend von $ENV{'DOCUMENT_ROOT'} oder $ENV{'SCRIPT_FILENAME'} alle Pfade selbst im Skript zusammenzusetzen. Das ist oft zuverlässiger weil Änderungen an der Verzeichnisstruktur automatisch übernommen werden. Außerdem sind die beiden Keys in den meißten Fällen vorhanden und auch richtig.

Als Beispiel
Code: (dl )
1
2
my $RootAndSubDir = $ENV{'SCRIPT_FILENAME'};
$RootAndSubDir =~ s-(.*?)\/MyPerlSkript.pl-$1/-g;
\n\n

<!--EDIT|cbxk1xg|1139594974-->
GwenDragon
 2006-02-10 20:34
#29834 #29834
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
@pq
Na, PATH_INFO braucht eine ja.
Sonst kannst du keine Action-Handler schreiben.


Ich finde es ärgerlich.
Da wird zuhause entwickelt. Auch schön alte Pakete benutzt, damit alles gleich ist. Und es geht - zuhause.
Und dann will der Server draußen nicht.

Aber es gibt schlimmeres. Manche setzen PATH_INFO auf SCRIPT_URL. PATH_TRANSLATED auf SCRIPT_FILENAME.
Dann wird es lustig.

Wahrscheinlich darf ich doch den Pfad wieder per Perl zwecks Prüfung etc. auseinander- und zusammenkonstruieren.\n\n

<!--EDIT|GwenDragon|1139597155-->
GwenDragon
 2006-02-14 09:10
#29835 #29835
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Der 1&1-Support sagt dazu folgendes:
Quote
Sehr geehrte Frau ...,

Es wird der Absolute Pfad zum Skript plus den path_info ausgegeben.

Für weitere Rückfragen stehen wir Ihnen gerne zur Verfügung.

http://de.selfhtml.org/servercgi/cgi/umgebungsvariablen.htm

SelftHTML sagt zu PATH_TRANSLATED:
Quote
PATH_TRANSLATED
Enthält wie PATH_INFO den Anteil des URI nach dem Scriptnamen bis zum ersten ?, jedoch mit dem Unterschied, dass nicht der Anteil selbst aus dem URI zurückgegeben wird, sondern der vom Webserver übersetzte Datenpfad dieses Anteils. Angenommen, das Script hat die Adresse http://meine.seite.net/cgi-bin/test.pl, wurde aber mit http://meine.seite.net/cgi-bin/test.pl/querys/musicbase.sql aufgerufen. Dann könnte der zusätzliche Adressanteil /querys/musicbase.sql aus Sicht des Webservers beispielsweise in einen physischen Pfadnamen wie /usr/web/seite/querys/musicbase.sql aufgelöst werden. Diesen Pfadnamen würde PATH_TRANSLATED zurückgeben.
Quelle: http://de.selfhtml.org/servercgi/cgi/umgebungsvariablen.htm


Quote
Absolute Pfad zum Skript plus den path_info

<IRONIE>Kuck an, das hätt ich ja NIE rausbekommen.</IRONIE>

Was ist das bloss für ein Unsinn. Absoluter Pfad zum Skript + Pathinfo :angry:
Da kann eineR ja nichts mit PATH_TRANSLATED anfangen.

Merke: CGI-Variablen sind schön und net - wenn sie richtig wären.

Also selbst zusammen basteln.

Nerver trust a running system!\n\n

<!--EDIT|GwenDragon|1139901090-->
<< >> 6 Einträge, 1 Seite



View all threads created 2006-02-10 16:27.