Bogus: «-» (PERL) JavaScript Variablen an Perl Script übergeben..??

Hye Ihr!

Wieder einmal bin ich mit meinem Latein am Ende.
Ich schaffe es nicht, variablen, die mittels JavaScript definiert wurden, per SSI an ein Perl Script zu übermitteln.

folgenden code verwendete ich (unter anderen):
var requested = location.host;
var new_url = 'exec cgi="/cgi-bin/build_index.cgi?'+requested+'-->';
document.write ("<!--#"+new_url);

oder auch
var requested = location.host;
document.write("<!--#include virtual="/cgi-bin/build_index.cgi?"+requested+""-->");

aber es funktioniert nicht. sobald die zeile mit <!--# beginnt, wird das script aufgerufen...die variable aber nicht mit übermittelt :-(

der quelltext sieht nach einem seitenaufruf dann so aus:
<script>
var requested = location.host;
document.write("

das perl script sieht so aus:
------------------------------
#!/usr/bin/perl
#!c:\perl\bin\perl

use LWP::Simple;

print "content-type: text/html\n\n";
print "start";

print "$ENV{'QUERY_STRING'}";

$requested = $ENV{'QUERY_STRING'};

if ($requested =~ /announcen.at/ $requested =~ /anzeigenmarkt.at/) {
$doc = get "http://$ENV{'SERVER_NAME'}/announcen.at/frameset.shtml";
print $doc;
}
elsif ($requested =~ /energy-drinks.at/ $requested =~ /in-getraenke.at/) {
$doc = get "http://$ENV{'SERVER_NAME'}/energy-drinks.at";
print $doc;
}
elsif ($requested =~ /predl.com/) {
$doc = get "http://www.predl.com/predl_home.shtml";
print $doc;
}
else {
print "content-type: text/html\n\n";
print "Wegweiser";
}
------------------------------

ich steh voll im wald. ich hab schon alle möglichen variationen versucht :-(
was will ich:
ich habe mehrere URL's für meinen server.
wenn ein user zb. über die url www.anzeigenmarkt.at auf meine homepage kommt, dann soll gleich die entsprechende site geladen werden.

vielen, vielen herzlichen dank schon jetzt
mfg
Bogus

  1. Hi,

    Ich schaffe es nicht, variablen, die mittels JavaScript definiert wurden, per SSI an ein Perl Script zu übermitteln.

    das schafft keiner. SSI wird serverseitig ausgeführt ("_Server Side_ Includes"), also lange bevor irgendein Browser auch nur den Hauch einer Chance hat, JavaScript auszuführen. Sorry, aber das geht einfach nicht.

    Cheatah

    1. hye Cheatah

      das schafft keiner. SSI wird serverseitig ausgeführt ("_Server Side_ Includes"), also lange bevor irgendein Browser auch nur den Hauch einer Chance hat, JavaScript auszuführen. Sorry, aber das geht einfach nicht.

      wie man es auch immer machen muss, aber irgendwie muss man doch javascript variablen an ein perlscript übergeben können, oder?

      ich muss es deshalb mittels javascript machen, weil nur dieses sprache mir über location.host wirklich die aktuell eingegebene domain liefert. mittels perl und 'SERVER_NAME', etc bekomme ich immer die original domain vom server.

      gibts da wirklich keine lösung?
      mfg
      Bogus

  2. Hi Bogus,

    Die Zusammenwirkung von JS und SSI hat Cheatah ja schon erklärt.

    Hier ein Vorschlag von mir ;-) (ich hoffe ich verzapfe kein Mist)

    Also, mach die ganze Sache doch nur mit JS.

    In diesem Fall machst Du ein Frame, und innerhalb des Frames wertest Du dann die aufgerufene URL aus. Nun kannst du per JS die eigentliche Startseite aufrufen.

    if(location.host == "announcen.at")
    document.write('<frame name="MeinFrame" src="'unterverzeichnis/startseite.htm'">');

    Dabei beachten mußt Du natürlich, daß ein Besucher JS ausgeschaltet hat. Dafür solltest Du auf jeden Fall eine Übersichtsseite parat haben. (Kann auch positiv sein, da der Besucher dann einen Überblick erhält, was Du so im angebot hast.)

    Ein weiterer Vorteil ist noch, daß wenn Du auf die Funktion get verzichten kannst, Du den Traffic für Deinen Account niedriger hälst. Jede, Deiner eigenen, so geladenen Seiten bedeutet zusätzlicher Traffic.

    Hallo Mitleser, falls ich falsch liege, biite berichtigen.

    Gruß HaPe

  3. Hye alle miteinander :-)

    Danke für eure Antworten. Aber letztendlich - durch Zufall - habe ich doch selbst die optimale Lösung gefunden :-)

    Es gibt eine Umgebungsvariable in Perl, die der JavaScript variablen location.host gleich kommt :-)

    nämlich *dadatatä*
    $ENV{'HTTP_HOST'}

    Diese liebe kleine Variable liefert mir alles was ich brauche. Also merken: $ENV{'HTTP_HOST'}
    (Als Beispiel siehe meine URL, die eigentlich auf predl.com zeigt. oder auch http://in-getraenke.at)

    mfg
    Bogus