#!/usr/bin/perl use strict; use warnings; use mydb; use CGI; use CGI::Session; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use utf8; my $db=mydb->new('test.db'); my $form = CGI->new(); my $session = CGI::Session->new("driver:File", $form, { Directory=>"/tmp" }) or die CGI::Session->errstr; my $sname=$ENV{SCRIPT_NAME}||'registration.pl'; print $session->header(); warningsToBrowser(1); my $aktion=$form->param('aktion') || 'init'; $form->delete('aktion'); if($aktion eq 'add') { my $name=$session->param('name'); my $pass=$session->param('pass'); if($name && $pass && $db->add($name,$pass)) { $db->save(); print_add($sname,$form); } else { print_input($sname,$form,"Name / Passort sind nicht gesetzt!") } } elsif($aktion eq 'check') { my $name=$form->param('name'); my $pass=$form->param('pass1'); if($pass ne $form->param('pass2')) { print_input($sname,$form,'Die Passwörter stimmen nicht überein!'); } elsif($db->has($name)) { print_input($sname,$form,'Der Name ist schon registrieret!'); } else { $session->param('name',$name); $session->param('pass',$pass); print_check($sname,$form,$name); } } elsif($aktion eq 'init') { print_input($sname,$form); } else { print_input($sname,$form,'unerlaubte Aktion!'); } ######################################################################## sub print_add { my $sname=shift; my $form=shift; my $name=shift; print $form->start_html("Registrierung abgeschlossen!"), $form->h1("Registrierung abgeschlossen!"), $form->p("Ihre Eingaben wurden akzeptiert. Sie können sich unter dem namen $name anmelden."), $form->end_html(); } sub print_check { my $sname=shift; my $form=shift; print $form->start_html("Ihre Eingaben"), $form->startform(-action => $sname, -method => 'POST' ), $form->hidden('aktion','add'), $form->h1("Ihre Eingaben"), $form->table({-border=>1}, $form->Tr({-align=>'CENTER' ,-valign=>'TOP'}, [ $form->td(["NAME:", $form->param('name')]), $form->td(["PASSWORT:", $form->param('pass1')]), ]), ), $form->br(), $form->submit("Registrierung abschließen"), $form->endform(), $form->startform(-action => $sname, -method => 'POST'), $form->hidden('aktion','init'), $form->submit("Ändern"), $form->endform(), $form->end_html(); } sub print_input { my $sname=shift; my $form=shift; my $message=shift; print $form->start_html("Registration"), $form->h1("Registration | Ausleihe MMSZ.org"), $form->h4("Bitte geben Sie Ihre Daten ein"), $form->startform(-action => $sname, -method => 'POST' ), $form->hidden('aktion','check'), $form->table({-border=>0}, $form->Tr({-align=>"LEFT", -valign=>"TOP"},[ $form->td(['Name' , $form->textfield( -name=>'name', -size=>30, -maxlength=>30, -value=>$form->param('name')), "", ""]), $form->td(['Passwort' , $form->password_field(-name=>'pass1', -size=>30, -maxlength=>30 ), "", ""]), $form->td(['Passwort wiederholen' , $form->password_field(-name=>'pass2', -size=>30, -maxlength=>30 ), "", ""]), ]), ), $form->br(), $form->submit("Registrieren"), " ", $form->reset("Löschen"); print $form->br(),$form->p("NACHRICHT:$message") if($message); print $form->endform(), $form->end_html(); }