Birdman: $parse_form

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>
  !;
 }
}

  1. Hi,

    ich möchte den Wert einer Variable "varneu" eines mit "FORM ACTION" übergebenen Bewertungschemas an ein CGI-Skript übergeben

    ceci n'est pas une variable. Es handelt sich um Parameter, _nicht_ um Variablen.

    Die Ausgabe funktioniert mit dem Befehl "$FORM{'survey'}" (s. 3. "library.cgi).

    Was von diesem Müll zu halten ist, recherchiere bitte im Archiv. Kleiner Tipp, in einem Wort zusammengefasst: Abstand. Wie man es richtig macht, erfährst Du ebenfalls im Archiv und in

    perldoc CGI

    Cheatah

    --
    X-Will-Answer-Email: No
    1. »»» Was von diesem Müll zu halten ist, recherchiere bitte im Archiv. Kleiner Tipp, in einem Wort zusammengefasst: Abstand. Wie man es richtig macht, erfährst Du ebenfalls im Archiv und in

      perldoc CGI

      Cheatah

      Mag ja durchaus sein, aber es ist nun mal ein vorgegebenes Skript, daß ich nicht grundsätzlich ändern möchte und auch gar nicht kann.
      Birdman

      1. Hi,

        perldoc CGI

        Mag ja durchaus sein, aber es ist nun mal ein vorgegebenes Skript, daß ich nicht grundsätzlich ändern möchte

        dann such Dir eines, das vernünftig programmiert ist und nicht geändert werden muss - ganz einfach. Das bisherige ist _mies_, und Du kannst froh sein, dass es seinen Dienst versagt.

        und auch gar nicht kann.

        Dagegen lässt sich etwas unternehmen.

        Cheatah

        --
        X-Will-Answer-Email: No
        1. Danke für die Hilfe!
          Mit solchen schwarz-weiß-Kommentaren schafft man es bei so hoch frequentierten Foren, daß das Hilfeersuchen soweit nach unten rutscht und einem niemand mehr Hilfe gibt. Steht ja schließlich schon eine Antwort dort, dann wird dem ja sicher schon geholfen.
          Kannst Du Dir vorstellen, daß es Menschen gibt, die z.B. einem Hobby nachgehen und deshalb gewisse Informationen übers Internet austauschen möchten. Die aber deswegen nicht soviel Zeit haben, sich in alle Feinheiten einzuarbeiten und komplette CGI-Skript-Programmierungen zu lernen.
          Angenommen Du suchst Hilfe in einem Rennradforum, weil Du gerade ein neues Rad von Hersteller X gekauft hast und Du gerne ein Zubehör anbringen möchtest. Wie gefiele Dir dann die Antwort, Dein Rad sei ja total veraltet und erstmal solltest Du den Carbonrahmen selber kleben, dann können wir über das Anbringen eines Tachos reden? So kommt mir Dein Posting leider vor. Und da ich jetzt wohl keinerlei hilfreiche Ratschläge mehr zu meinem (wie ich dachte kleinen) Problem bekommen werde, müssen sich halt meine HP-Besucher ihre Bewertungen ohne Zusatzinfo ansehen.
          Nix für ungut,
          Birdman

          1. Moin Moin !

            Ist Dir aufgefallen, daß Du Dich gerade als Lernverweigerer geoutet hast ? Mir wäre das echt peinlich.

            Cheatah hat versucht, Dir zu helfen. Aber er hat Dir keinen Code geschrieben. "Dies ist SelfHTML, nicht GetHTML", hat heute hier jemand (Cheatah ?) gepostet. Das Forum und der Rest (SelfAktuell, SelfHTML) ist Hilfe zur Selbsthilfe.

            Alexander

            --
            Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
            1. Hi,

              "Dies ist SelfHTML, nicht GetHTML", hat heute hier jemand (Cheatah ?) gepostet.

              ja, ich. Und um bei Birdmans Vergleich zu bleiben: Wenn Du in einem Fahrrad-_Selbstbau_-Forum nach Zubehör fragst, wirst Du ebenfalls[1] Hilfe dazu bekommen, wie Du es Dir selbst herstellst.

              Das Forum und der Rest (SelfAktuell, SelfHTML) ist Hilfe zur Selbsthilfe.

              Das zitiere ich einfach noch mal, in der Hoffnung, dass es einmal mehr gelesen wird.

              Cheatah

              [1] Sofern es sich selbst herstellen lässt, versteht sich - deswegen hinkt der Vergleich, denn alles, worum es in diesem Forum geht, lässt sich mit einem Texteditor erledigen.

              --
              X-Will-Answer-Email: No
          2. Hi Birdman,

            Kannst Du Dir vorstellen, daß es Menschen gibt, die z.B. einem Hobby nachgehen und deshalb gewisse Informationen übers Internet austauschen möchten. Die aber deswegen nicht soviel Zeit haben, sich in alle Feinheiten einzuarbeiten und komplette CGI-Skript-Programmierungen zu lernen.

            das ist ja auch gar nicht verlangt worden. Es gibt Skripte, die besser lesbar sind - man muß nicht alles selbst schreiben.
            Man muß aber auch nicht mit Müll ankommen und ihn hier im Forum reparieren lassen wollen.

            Und da ich jetzt wohl keinerlei hilfreiche Ratschläge mehr zu meinem (wie ich dachte kleinen) Problem bekommen werde

            Du hast den hilfreichsten Hinweis bereits erhalten: Suche Dir ein besser wartbares Skript für diese Aufgabenstellung - das ist umso wichtiger, je _weniger_ Du selbst von CGI-Programmierung verstehst.

            Viele Grüße
                  Michael

            --
            T'Pol: I apologize if I acted inappropriately.
            V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.