Index: ossp-pkg/tabea/tabea.cgi RCS File: /v/ossp/cvs/ossp-pkg/tabea/tabea.cgi,v rcsdiff -q -kk '-r1.5' '-r1.6' -u '/v/ossp/cvs/ossp-pkg/tabea/tabea.cgi,v' 2>/dev/null --- tabea.cgi 2002/04/16 12:09:46 1.5 +++ tabea.cgi 2002/05/07 12:58:21 1.6 @@ -43,48 +43,106 @@ $MY->{TEMPLATE} .= $_ while (<$fh>); $fh->close(); - # establish CGI query object -my $Q = new CGI; +my $cgi = new CGI; + +# activate a general error handler +$SIG{__DIE__} = sub { + my ($err) = @_; + + #$err =~ s|at\s+\S+\s+line\s+(\d+)|(line $1)|s; + $err =~ s|\n|
\n|sg; + print STDOUT $cgi->header(-expires => '+1s') . + "Tabea :: ERROR", + "

Tabea :: ERROR

\n" . + "
$err
\n"; + exit(0); +}; + + +# fetch parameters +my $form = $cgi->param("form") || ""; +my $username = $cgi->param("username") || ""; +my $password = $cgi->param("password") || ""; + +# update cookies +my $cookies = []; +foreach my $param (qw(username)) { # FIXME! + if ($cgi->param($param) ne '' and ($cgi->param($param) ne $cgi->cookie($param))) { + push(@{$cookies}, $cgi->cookie( + -name => $param, + -value => $cgi->param($param), + -expires => '+1d', + -path => $cgi->url(-absolute => 1), + -secure => 0 + )); + } + if ($cgi->param($param) eq '' and $cgi->cookie($param) ne '') { + $cgi->param(-name => $param, -value => [$cgi->cookie($param)]); + } +} + +sub validpassword { + my ($username, $password) = @_; + return ""; +} my $page = ''; -$page .= "fuck"; -my $page2 =''; -$page2 .= "Welcher auch"; + +if ($form eq '') { + $page .= $cgi->startform( -method => "POST", -action => $cgi->url(-full => 1)) . + $cgi->hidden(-name => 'form', -default => ['login']) . + "" . + " " . + " " . + " " . + " " . + " " . + " " . + " " . + " " . + " " . + " " . + " " . + "
Username:" . + $cgi->textfield( + -name => 'username', + -default => $username, + -size => 20, + -maxlength => 8 + ) . + "
Password:" . + $cgi->password_field( + -name => 'password', + -value => $password, + -size => 20, + -maxlength => 80 + ) . + "
" . + $cgi->reset() . + $cgi->submit(-name => 'dialog', -value => 'Login') . + "
" . + $cgi->endform; +} +elsif ($form eq 'login') { + # enter Select form + # &validpassword($username, $password) || print STDOUT $cgi->redirect(-uri => $cgi->url(-full => 1), -type => "text/html"); + $page .= "Dialog: ".$cgi->param("dialog") ."
\n"; + $page .= "Username: ".$cgi->param("username") ."
\n"; + $page .= "Password: ".$cgi->param("password") ."
\n"; +} +elsif ($form eq 'select') { + # enter Edit form + &validpassword($username, $password) || print STDOUT $cgi->redirect(-uri => $cgi->url(-full => 1), -type => "text/html"); +} +else { + die "invalid form \"$form\""; +} my $out = $MY->{TEMPLATE}; $out =~ s|%%BODY%%|$page|s; -$out =~ s|%%TITLE%%|$page2|s; - - - - # generate "ADD" form - $out .= $Q->startform( -method => "POST", -action => $Q->url()) . - "\n" . -# "" . -# "" . $Q->submit(-name => 'form', -value => 'Add') . "" . -# "" . - "" . - "Username:" . - $Q->textfield( - -name => 'username', - -default => '', - -size => 20, - -maxlength => 80 - ) . - "" . - "

" . - "" . - "Password:" . - $Q->textfield( - -name => 'password', - -default => '', - -size => 20, - -maxlength => 80 - ) . - "" . - $Q->endform; +$out =~ s|%%TITLE%%|Test|s; -print $Q->header(-expires => '+1s') . $out; +print $cgi->header(-cookie => $cookies, -expires => '+1s') . $out; exit (0);