Struppi: + Perl Radio Button abfragen

Beitrag lesen

Ich sach mal, hart. Was du da programmierst ist ziemlich verbesserungswürdig.

Ohne use strict und Warnungen solltest du gar nicht erst angfangen umfangreichere Skripte zu schreiben (es sei den du hälst dich für genial). du wirst viele Fehler nur sehr schwer finden . Dann bindest du Module ein die du nicht verwendest.

Um das ganze skript zu kommentieren brauch ich 'n ganzen Tag. Aber ein bisschen...

#!/usr/bin/perl

#Fehlerausgabe an den Browser
use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);

Also:

#!/usr/bin/perl -w

use strict;
use CGI qw/:standard/;

---> Das ist der übergebene Wert von der Seite zuvor:

$ausgabe=$ENV{'QUERY_STRING'};

@werte = split (/&/, $ausgabe);
foreach $werte (@werte)
{
   ($varmenu, $varpool) = split (/=/, $werte[0]);
}

Keine Ahnung was du da machst, aber es sieht so aus, als ob du das letzte CGI Parameter paar an $varmenu und $varpool übergibst und alle anderen werden verworfen.

Das CGI Modul hat einen Haufen funktionen u.a. für sowas.

my $varpool = CGI::param('menu');

keine Ahnung wie die CGI Parameter heißen.

----> Dann lass ich mir den Pool anzeigen, den der Bunutzer ausgewählt hat

htmltag ();

$d=0;
for ($d; $d<10; $d++) {
$_DATEI="/usr/home/ronny/www/cgi-bin/system/$dir1[$d]";
}

print "$dir1[$d]<br>";

Was die Scheleife soll ist mir auch nicht klar. du weist der Variabel $_DATEI den Wert des 10. eintrages des Array @dir1 zu.

1. In perl funktionieren so schleifen wesentlich einfacher:

foreach my $d(0.. 10)
{

}

open(DATEI, "<$_DATEI") || die "Fehler beim öffnen der Datei: $_DATEI - $!.\n";
while(<DATEI>)
{
 push(@fc,split(/\s*,\s*/,  $_, 1));
}

for ($f; $f<= @farb-1; $f++) {     # farb.txt werte werden aufgeteilt und in ein Array gespeichert
($name,$erkennung,$wert)=split(/,/, @farb[$f]);
@werte[$f] = $wert;
}

Auch diese Schelifen gehen in Perl einfacher.

Der ganze code ist unnötig aufbegbläht, der HTML code ist altertümlich.
Du solltest dich ausführlich mit Perl beschäftigen, evtl. mal ein gutes Perl Buch lesen und dich mit dem CGI Modul auseindersetzten. Der Code ist ein katastrophe.

Nun frag ich mich ob es möglich ist die ganze Sache auf einer Seite zu machen oder muss ich zwangsweise auf eine neue um dort die ergebnisse anzeigen zu lassen. Aber es müsste doch möglich sein die ganze Ausgabe auf der selben seite zu machen oder?

Wenn du ein neues  Ergebnis haben willst, musst du natürlich die Abfrage nochmal neu starten. Die Seite, wie du es bezeichnest, ist ein vom CGI skript ausgegebener code, der statisch in dem Browser angezeigt wird. Danach ist das Skript beendet. In der Seite kannst du nur Veränderungen machen, mit Javascript, das aber auch dein CGI Programm erzegen muss.

Struppi.