Dusko: Perl in HTML

Hi Folks

Ich rufen in einem HTML-Document ein Perl-Script auf. Al Parameter uebergebe ich ein SQL-String.

<!--#include virtual="/cgi-bin/db_list.pl?dbServerLog&select * from server where servernr=1"-->

Die Servernummer habe ich in der Umgebungsvariable (QUERY_STRING ["ServerNr=2]").

Wie bekomme ich nun QUERY_STRING in meine Perlanweisung??

Mein Versuch:

<script language=JavaScript type="text/javascript">
  begin="<!--#include virtual="/cgi-bin/db_list.pl?  dbServerLog&select * from server where ";

mitte=QUERY_STRING;
  end=" "--> ";
  document.writeln(begin+mitte+end)
</script>

Dies ist aber nur ein netter Versuch und funktioniert nicht wirklich...

Fuer jede Hilfe bin ich dankbar!!

Dusko

  1. Hi,

    habe mich mit SSI und Perl zwar noch nicth weiter befaßt, aber irgendwie kommt mir das, was Du da vorhast, ziemlich riskant vor. Was wäre denn, wenn jemand aus Spaß einfach mal etwas wie

    <!--#include virtual="/cgi-bin/db_list.pl?dbServerLog&drop database ....."-->

    eingeben würde...? ;-) Also, ich würde lieber nur bestimmte Schlüsselwörter und Parameter an das Perl-Script übergeben und dann auf dem Server erst die einzelnen SQL-Kommandos zusammenbauen.

    Gruß,
    Stefan

  2. Hi,

    begin="<!--#include virtual="/cgi-bin/db_list.pl?  dbServerLog&select * from server where ";
      mitte=QUERY_STRING;
      end=" "--> ";

    der Server (also Jahre bevor irgendwer oder irgendwas feststellt, daß da JavaScript im Spiel ist) versucht, diese SSI-Tags zu ersetzen, falls er die Syntax für gültig hält. Am Ende kommt nur das Ergebnis an, also z.B.

    begin="[an error occured while processing this directive] ";

    Wie gesagt, falls der Server tatsächlich von "<!--#" bis "-->" das SSI-Kommando sieht. Andernfalls kommen genau die Zeichen an, die Du eingetippt hast, und zwar ohne irgendeine Bedeutung für JavaScript, geschweige denn eine Wirkung.

    Nebenbei bemerkt solltest Du die Zahl der Anführungszeichen mal überprüfen; und QUERY_STRING ist auch nichts, was JavaScript kennt. Zudem erfordert include virtual einen URL-kodierten String, d.h. insbesondere, daß die Leerzeichen im SQL-Query absolut fehl am Platz sind.

    Dies ist aber nur ein netter Versuch und funktioniert nicht wirklich...

    Dein Vorhaben ist so nicht durchführbar. Es _muß_ ein neuer HTTP-Request durchgeführt werden, also ein Link geklickt, Formular abgeschickt usw.

    JavaScript ist bei SSI eher hinderlich. Vor allem ist es vergleichbar damit, ein Auto zu bestellen und dann während der Fahrt zu versuchen, es mit einem anderen Motor ausrüsten zu lassen.

    Cheatah