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

URL eines Skripts auslesen



<< >> 9 Einträge, 1 Seite
Gast Gast
 2007-06-02 03:12
#129 #129
Hallo,

ich bin absoluter Anfänger in Sachen Perl/CGI und hoffe, das mir hier jemand weiterhelfen kann.

Ich habe eine Webseite, die unter zwei verschiedenen Domains erreichbar ist (z. B. www.test1.de und www.test2.de). Die gesamte Funktion der Webseite ist mit einem CGI-Skript realisiert.

Nun möchte ich gerne folgendes realisieren: Wenn der Benutzer auf www.test1.de geht, soll im Browser der Text "Willkommen auf Test1.de", auf www.test2.de entsprechend "Willkommen auf Test2.de" stehen.

Dazu hatte ich mir gedacht, im CGI-Skript einfach die URL des Browsers auszulesen, und per if-Abfrage dann den entsprechenden Text an den notwendigen Stellen auszugeben.

Aber wie kann ich das in Perl/CGI realisieren?

IN PHP würde ich einfach die Variable $_SERVER['DOCUMENT_ROOT'] auslesen. Gibt es so etwas ähnliches auch in Perl/CGI?

Viele Grüße,
Sebastian
topeg
 2007-06-02 03:37
#130 #130
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code (perl): (dl )
my $string=$ENV{DOCUMENT_ROOT};

Das sollte auf jedem HTTP-Server zur Verfügung stehen.
betterworld
 2007-06-02 05:28
#131 #131
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Hm, ich weiss nicht, ob DOCUMENT_ROOT da hilft. Da steht doch eigentlich nur der lokale Pfad zum public_html-Verzeichnis drin. Was Du suchst, steht in $ENV{HTTP_HOST}
topeg
 2007-06-02 13:42
#132 #132
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Stimmt schon ambesten sollte man "SERVER_NAME" aus %ENV auslesen. "HTTP_HOST" könnte man auch verwenden. Das muß der Client dann aber mitliefern, ob das immer der Fall ist weiß ich nicht.
betterworld
 2007-06-02 13:52
#133 #133
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Stimmt, SERVER_NAME ist wohl das Beste.
kristian
 2007-06-03 17:09
#134 #134
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Hairsplitting...
Aber in der Praxis bewährt ist:
Code: (dl )
my $server_name = $ENV{'HTTP_HOST'} || $ENV{'SERVER_NAME'} || '';


Gruß
Kristian
ptk
 2007-06-04 00:00
#135 #135
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=topeg,02.06.2007, 11:42]Stimmt schon ambesten sollte man "SERVER_NAME" aus %ENV auslesen. "HTTP_HOST" könnte man auch verwenden. Das muß der Client dann aber mitliefern, ob das immer der Fall ist weiß ich nicht.[/quote]
Da der Host-Header bei HTTP/1.1 Pflicht ist und wahrscheinlich so gut wie alle Clients HTTP/1.1 sprechen, wird der Header da sein. Ansonsten würden Sachen wie NameVirtualHost gar nicht funktionieren.
ptk
 2007-06-04 00:04
#136 #136
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Oder vielleicht besser ausgedrückt: vielleicht sprechen noch einige Clients nur HTTP/1.0, aber den Host-Header dürften so gut wie alle schicken.
kristian
 2007-06-04 00:21
#137 #137
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Oder anders gesagt es gibt in Köln einen Hoster, der es anders sieht und "Alias-Domains" verkauft.

Speziell für diesen Hoster kenne ich einige workarrounds, da die Kommunakition (mit dem Hoster) nichts bringt.

Ich fühle mich gerade leicht angepisst..
Es kann doch wohl nicht sein, daß ich die Erfahrung der letzten Jahre zum Besten gebe und immer nur Störgeräusche entstehen.

Ich möchte darum bitten mir zuzuhören, wenn ich etwas sage.
Es ist kein Quatsch und keine Vermutung.
Es ist einfach nur die Realität von heute.

Grummml
Kristian\n\n

<!--EDIT|kristian|1180902218-->
<< >> 9 Einträge, 1 Seite



View all threads created 2007-06-02 03:12.