Birdman: $parse_form

Beitrag lesen

Hallo,
ich möchte den Wert einer Variable "varneu" eines mit "FORM ACTION" übergebenen Bewertungschemas an ein CGI-Skript übergeben und von dort in einer Ausgabedatei ausgeben. Es handelt sich um ein fertiges Skript eines Sharewareprogramms, die Übergabe der Variable "survey" funktioniert z.B. problemlos, da voreingestellt. Die Ausgabe funktioniert mit dem Befehl "$FORM{'survey'}" (s. 3. "library.cgi).

Ich bin inzwischen dahintergekommen, daß es wohl was mit "$parse_form" zu tun haben muß. Nur weiß ich nicht genau, wo und wie ich die neue Variable dort ansprechen/definieren muß. Ich habe nachfolgend mal die Skripte angehängt, auch wenn es wohl eher eine Zumutung ist. Wäre für Hilfe wirklich sehr dankbar, oder zumindest für einen Tip, wo ich was anchlesen könnte. Habe im Archiv etc. zumindest für mich Laien nix Verständliches gefunden.
Birdman

Nachfolgend Extrakte der 3 Dateien:
1. Eingabedatei
2. survey.cgi
3. library.cgi
(in der auch im Skript genannten Datei "config.cgi" stehen nur feste Einstellungen für Variablennamen und Formatierungen, also keine von der Eingabedatei beeinflußten Variablen)

1. EXTRAKT der HTML-Eingabedatei:
********************************
<FORM ACTION="http://web22.server3.ascis.de/cgi-bin/survey.cgi" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="vote">
<INPUT TYPE="HIDDEN" NAME="survey" VALUE="Test">
<INPUT TYPE="HIDDEN" NAME="redirect" VALUE="http://web22.server3.ascis.de/cgi-bin/survey.cgi?action=view&survey=Test">
<INPUT TYPE="HIDDEN" NAME="varneu" VALUE="Ausgabetext">

2. Extrakt CGI-Skript "survey.cgi":
***********************************
#!/usr/bin/perl

require 'config.cgi';
require 'postoffice.lib';
require 'library.cgi';
use Socket;

&parse_form;

Check to see if the HTTP referer is allowed to access this script.

$ref = 0;
if(! @referers) {
 $ref = 1;
}

foreach $referer (@referers) {
    if($ENV{'HTTP_REFERER'} =~ /$referer/i) {
        $ref = 1;
        last;
    }
}

if(! $ref) {
    &error("The HTTP REFERER was not allowed to access this script.");
}

if($FORM{'action'} eq "") {

# No action means that Survey Office should either list the current surveys
 # or print the appropriate survey form.

if($FORM{'survey'} ne "") {

if(! -e "$surveyoffice_base_dir/$FORM{'survey'}.info") {
   &error("The survey name, $FORM{'survey'}, does not exist!");
  }

# Generate the survey form
  &header;
  print &generate_form("$FORM{'survey'}");
  &footer;

}
 else {
  &header;
  print qq!
  <CENTER>
  <TABLE BGCOLOR="$table_bgcolor" CELLSPACING="$table_cellspacing" CELLPADDING="$table_cellpadding" BORDER="$table_border" WIDTH="$table_width">
  <TR BGCOLOR="$table_caption_row_color"><TD COLSPAN=2>
  <FONT FACE="$font_type" SIZE="$caption_font_size" COLOR="$table_font_caption_color"><B>
  Current Available Surveys</B></FONT></TD></TR>
  !;

opendir(SOFFICE,"$surveyoffice_base_dir") || &error("Unable to read from Survey Office directory");
  while($file = readdir(SOFFICE)) {
   if($file =~ /^(.*).info$/) {

$survey = $1;

3. Extrakt CGI-Skript "library.cgi" zur Ausgabe:
************************************************
#!/usr/bin/perl

#require 'config.cgi';

&parse_form;

$lockfile_max_try = 10;

@days   = ('Sunday','Monday','Tuesday','Wednesday',
               'Thursday','Friday','Saturday');
    @months = ('January','February','March','April','May','June','July',
          'August','September','October','November','December');

sub header {

print "Content-Type: text/html\n\n";
 if(-e "$surveyoffice_base_dir/$header_file") {
  open(FILE,"$surveyoffice_base_dir/$header_file") || die "Can't open header file: $surveyoffice_base_dir/$header_file";
  my @HEADER =<FILE>;
  close(FILE);

print @HEADER;
 }
 else {
  print qq!
  <HTML>
  <HEAD>
  <TITLE>MMBici</TITLE>
  </HEAD>
  <FONT FACE="Arial" SIZE=2>
  <table border="0">
   <col width="120">
  <col width="300">
  <tr><td><a href="http://www.mmbici.de/termine/term.htm#$FORM{'survey'}" target="_self"><img src="../images/but-term.gif" alt="Zurück zu Termine" border="0" width="65" height="20"></a></td>
  <td>&#160;</td></tr>
  <tr><td><a href="http://www.mmbici.de/wertung/$FORM{'survey'}.htm" target="_self"><img src="../images/but-wert.gif" alt="Zurück zur Bewertung" border="0" width="65" height="20"></a></td>
     <td><H3>MMBici Tourbewertung $rtf</H3></td></tr>
  </table></FONT>
  <TABLE WIDTH=550 BORDER=0>
  <TR><TD>
  <FONT FACE="Arial" SIZE=-1>
  !;
 }
}