[vienna.pm] CGI: $q->param('name') ist leer
Roland Bauer
roland.bauer at fff.at
Sun Jul 16 10:03:40 CDT 2000
* * * vienna-pm-list * * *
Hallo!
Ich habe da ein halbfertiges CGI-Script, welches das Editieren eines
Files via Webinterface ermoeglichen soll.
Wenn man auf den Button "Load" drueckt, soll das File
in das Textfeld geladen werden.
Seltsamerweise ist aber der Parameter
$wanted1
an der Stelle 1 (beim if) leer, aber an der Stelle 2 bei "Pressed
Button"
gefuellt mit "Load", sobald man einmal Load gedrueckt hat.
(Nach Druecken von "Save" sollte $wanted1 eq "Save" sein.)
Wieso kann $wanted1 zuerst leer und spaeter gefuellt sein ... !?
Ich vermute entweder
1) einen prinzipiellen Denkfehler meinerseits, den nur ich nicht sehe
:-) oder
2) ein Problem mit der Datenmenge. Gibt's das ueberhaupt, dass die
Groesse des param-Bereiches limitiert ist? (Das Textfeld ist relativ
gross.)
Und dann verstehe ich nicht, warum es beim $q->save(OUT1) einen
Syntaxfehler gibt (Stelle 3) ...
Das Script ist realtiv lang, aber eigentlich kommt es nur auf diese
zwei/drei
Stellen an ...
Bin auch fuer allgemeine Tips zum Script dankbar :-)
Gibt es so ein Ding schon fertig?
Danke
Roland
----------------------------------------------
#!perl
#!/usr/bin/perl
use strict;
use vars qw($VERSION);
use CGI;
use CGI::Carp qw(fatalsToBrowser);
$VERSION = 0.01_00;
my $q = new CGI;
&check_login; # exit if not ok
&page_start;
###########################################
sub check_login {
my $id = $q->param('id');
unless ($id) {
&page_login, exit;
}
else {
&login_ok or &page_login_failed, exit;
}
}
############################################
sub login_ok {
return 1;
}
############################################
sub page_login {
print
&vorspann('Login'),
$q->start_form,
$q->hidden('me', 'page_login'),
$q->hidden('id', '4711'),
$q->start_table,
$q->Tr(
$q->td("User:"),
$q->td($q->textfield(-name=>'user')),
),
$q->Tr(
$q->td("Password:"),
$q->td($q->password_field(-name=>'password')),
),
$q->end_table,
$q->hidden('wanted', 'page_start'),
$q->submit(),
$q->end_form,
$q->end_html;
}
############################################
sub page_start {
my @p = $q->param;
use Cwd;
my $text = $q->param('text');
my $dir = $q->param('dir') || cwd or die;
my $file = $q->param('file') || 'willi.txt';
my $full = "$dir/$file";
#$text = $q->param('button_submit');
my $wanted1 = $q->param('button_submit');
################################################################
if ($wanted1 eq 'Load') { ########## ... IMMER LEER ... WARUM ??
(Stelle 1)
if (-f $full) {
open INP, $full or die;
local $/;
$text = <INP>;
$text = "wanted = $wanted1";
}
elsif (!$file) {
$text = "ERROR: Please enter a filename";
}
else {
$text = "ERROR: File does not exist";
}
}
elsif ($wanted1 eq '') {
my @par = $q->param;
$text = "Please load a file. params = \n## $wanted1\n++ @par\n** @p";
}
else {
$text = "Please select a File. wanted1 was [$wanted1]";
}
#$text = 'pp';
opendir DIR, $dir or die;
my @files = sort readdir DIR;
#my %labels = (
# 'eenie'=>'your first choice',
# 'meenie'=>'your second choice',
# 'minie'=>'your third choice',
#);
print
&vorspann("Edit File"),
$q->start_form,
$q->hidden('me', 'page_start'),
$q->hidden('id'),
#"[",$q->param('button_submit'),"]",
"Pressed Button [$wanted1]", #### HIER IST ES OK (Stelle 2)
#"[",$text,"]",
$q->start_table,
$q->Tr(
$q->td(
"Dir:"
),
$q->td(
$q->textfield('dir',$dir,60,180),
),
),
$q->Tr(
$q->td(
"File:"
),
$q->td(
$q->textfield('file',$file,60,180),
),
),
$q->end_table,
$q->start_table,
$q->Tr(
$q->td({-valign=>'top'},
'Select:',
$q->br,
$q->scrolling_list(
-name=>'menu_name',
-values=>\@files,
-default=>$file,
-size=>10,
-multiple=>'false',
#-labels=>\%labels,
),
),
$q->td({-valign=>'top'},
#$q->textarea('text',$text,20,80),
$q->textarea('text',$text,4,80),
),
),
$q->end_table,
$q->hidden('wanted', 'page_start'),
$q->submit(-name => 'button_submit', -value => 'Load'), ' ',
$q->submit(-name => 'button_submit', -value => 'Save'), ' ',
$q->hidden('button_submittest'),
$q->end_form,
$q->end_html;
my $out = "!param.log";
open (OUT1,">$out") || die;
#$q->save(OUT1); ################ ....... AUCH NICHT OK ???
########### (Stelle 3)
}
############################################
sub page_login_failed {
print &vorspann('Login failed');
}
############################################
sub vorspann {
my ($h1) = @_;
$h1 ||= 'Default Title';
return
$q->header,
$q->start_html(
-title=>'Redsys - '.scalar(localtime),
),
$q->h1($h1),
;
}
#############################################
--------------------------
###
You are subscribed to vienna-pm-list as Roland Bauer <roland.bauer at fff.at>
http://www.fff.at/fff/vienna.pm/
More information about the Vienna-pm
mailing list