blubmitsahne: Überabe Dynamische Varible von Perl nach CGI

Hallo,

ich möchte aus einen file werte auslesen und diese dann auf einer web seite darstellen und unter jeden wert einen button erzeugen.
Beim  drücken des buttons wird ein anderes perl script aufgerufen und eine aktion durchgeführt.

Mein Problem nun ist das ich dem button (cgi) keine varible von perl mitgeben kann.

Der rest klappt ohne probleme.

snipet

$cgi->h2('<input type="hidden"  name="ip" value=ip '),

dem Wert value will ich eine variable übergeben und das klappt nicht
setzt man den wert value="test" funktioniert der rest.

$cgi->h2('<input type="Submit" name="ip" value="Start">'),
<<<

Komplett code:

#!/usr/bin/perl -w

##load modules##
use CGI;
use CGI::Carp qw(fatalsToBrowser);

##hostfile##
$host="/var/www/hosts";

##open file##
open FILE, $host or die "Could not open $host: $!";

##output html##
my $cgi = new CGI;

print $cgi->header(),
$cgi->h4('<br>'),
      $cgi->h2('<center>Power down single Server</center>'),
      $cgi->h2('<hr colour="black"'),
      $cgi->h4('<br>'),
      $cgi->start_html(),
      $cgi->end_html();

##read host ips from file##
while (my $line = <FILE>)
{
chomp($line);
if ($line !~/^#/){
($ip, $name)=split(/\s+/,$line);

##output html##

print   $cgi->h2($ip,$name),
        $cgi->start_html(),
        $cgi->h2('<form name="Formular" action="power_down_single_go.pl" method="get" onsubmit="return chkFormular()">'),

$cgi->h2('<input type="hidden"  name="ip" value=ip '),

hier ist mein problem dem feld value müste die variable $ip übergeben werden. Das Klappt aber irendwie nicht.Setzt man den wert von value händisch klappt der rest####

$cgi->h2('<input type="Submit" name="ip" value="Start">'),
        $cgi->h2('</form>'),
        $cgi->end_html();
}   ##endif
}   ##endwhile
close FILE;
exit(1);

Goole hat mich nicht weitergebracht.
Hat jemand da eine idee

  1. Moin,

    Hallo,

    ich möchte aus einen file werte auslesen und diese dann auf einer web seite darstellen und unter jeden wert einen button erzeugen.
    Beim  drücken des buttons wird ein anderes perl script aufgerufen und eine aktion durchgeführt.

    Mein Problem nun ist das ich dem button (cgi) keine varible von perl mitgeben kann.

    Was hat ein Button mit CGI zu tun?

    Komplett code:

    ...

    $cgi->h4('<br>'),

    Aha. Ein Zeilenumbruch als Überschrift... nc.

    $cgi->h2('<center>Power down single Server</center>'),

    Nutze CSS.

    $cgi->h2('<hr colour="black"'),

    1. CSS.
    2. Das ding heißt color.
    3. Eine linie als Überschirft? nc.

    $cgi->h4('<br>'),

    s.o.

    $cgi->start_html(),

    http://de.selfhtml.org/perl/module/cgi.htm#htmlausgaben@title=Hm. Du beginnst hier erst das HTML-Dokument?

    $cgi->end_html();

    $cgi->h2('<input type="hidden"  name="ip" value=ip '),

    hier ist mein problem dem feld value müste die variable $ip übergeben werden. Das Klappt aber irendwie nicht.Setzt man den wert von value händisch klappt der rest####

    Ich sehe hier die Variable $ip nicht. (das "$" fehlt).

    print $cgi->h2('<input type="hidden" name="ip" value="'.$ip.'"');

    $cgi->h2('<input type="Submit" name="ip" value="Start">'),
            $cgi->h2('</form>'),
            $cgi->end_html();

    Noch ein Dokumentenende?

    }   ##endif
    }   ##endwhile
    close FILE;
    exit(1);

    Goole hat mich nicht weitergebracht.

    Kann ich mir denken. SCNR :)

    Hat jemand da eine idee

    Warum machst du _alles_ in überschriften???

    Gruß,
    Take

    1. Hallo

      value="'.$ip.'"'

      THX ist genau die Übergabe Funktion die mir gefehlt hat.
      Mach alles in Überschriftten weil mhhh
      egal funktioniert :)

      Bin halt kein Programierer und bastle da doch lieber am Netzwerk rum.

      Grüße
      Blub

      1. value="'.$ip.'"'

        THX ist genau die Übergabe Funktion die mir gefehlt hat.

        Naja, da du das CGI Modul nutzt, wäre es deutlich einfacher die entsprechende Funktion aus dem Modul zu verwenden:

        $cgi->h2($cgi->hidden(-name => 'ip', -value => $ip))
        (evtl. noch mit -override => 1)

        Struppi.

  2. $cgi->h2('<input type="hidden"  name="ip" value=ip '),

    dem Wert value will ich eine variable übergeben und das klappt nicht
    setzt man den wert value="test" funktioniert der rest.

    Du willst also eine concatenierung von verschiedenen Teilen wie in
    do_something( 'some string'. $yourvar . 'somestring')

    Im Übrigen empfehle ich dir
     use strict;

    Ich hätte auch anderes zu bemängeln.
    Zum beispiel dein while(), das fehlende file Locking etc ...

    oder den produzierten HTML Code.

    Vor allem aber solltest du die Perl Doku zu quote and quotelike operators lesen.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische