Schrift
[thread]644[/thread]

Parameter überprüfen: Die Eingaben eines Formulars überprüfen

Leser: 1


<< >> 8 Einträge, 1 Seite
pug
 2006-01-12 19:49
#6583 #6583
User since
2005-08-17
91 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,
ich wollte mal fragen, ob es noch eine elegante Methode gibt, wie man die Eingabe-Parameter auf Inhalt prüfen kann. Also ob eines oder mehrere Felder im Formular leer geblieben sind.
Bisher habe ich das folgendermaßen gedacht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
foreach $name ( $obj->param )
{
if ( undef ( $name ) )
{
# gehe wieder zur Eingabemaske
}
}
else
{
my $vorname = $obj->param ( "vorname" ); #0
my $nachname = $obj->param ( "nachname" ); #1
my $strasse = $obj->param ( "strasse" ); #2
my $plz = $obj->param ( "plz" ); #3
my $wohnort = $obj->param ( "wohnort" ); #4
my $email = $obj->param ( "email" ); #5
my $kontonummer = $obj->param ( "kontonummer" ); #6
my $blz = $obj->param ( "blz" ); #7
my $bankname = $obj->param ( "bankname" ); #8
my $username = $obj->param ( "username" ); #9
my $passwort = $obj->param ( "passwort" ); #A
}


Nun denke ich, daß man mit den CGI-Methoden bestimmt auch irgendwie viel einfacher die Parameter überprüfen kann.
Und dann habe ich keine Ahnung wie man das im Perl-Skript erzwingt, daß er wieder zur Eingabeseite zurückgeht.

Gruss Christian
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkel zu treiben und ewig zu binden.

William Gates III
pktm
 2006-01-12 20:05
#6584 #6584
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ja, mit Data::FormValidatir geht soetwas.
http://www.intergastro-service.de (mein erstes CMS :) )
Strat
 2006-01-12 21:06
#6585 #6585
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Data::FormValidator, oder auch manuell:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
my $cgi = CGI->new();
my %params = $cgi->Vars();

my $errorMessages = "";
foreach my $key (qw(numeric integer id)) {
if ($params{$_} =~ /\D/) {
$errorMessages .= "Error: $key contains chars that are not numeric<br />";
} # if
} # foreach

foreach my $key (qw(string1 string2 text)) {
if ($params{$_} =~ /[^a-zA-Z0-9 ]/) {
$errorMessages .= "Error: field $_ contains other characters than letters, numbers or spaces<br />";
} # if
} # foreach

if ($errorMessages) {
&PrintError($errorMessages);
exit;
}

oder so aehnlich
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2006-01-13 00:40
#6586 #6586
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Es gibt auch noch CPAN:CGI::Validate...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pug
 2006-01-14 18:43
#6587 #6587
User since
2005-08-17
91 Artikel
BenutzerIn
[default_avatar]
CGI::Validate war in etwas, das was ich gesucht habe, aber es ist nicht gerade intuitiv.
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkel zu treiben und ewig zu binden.

William Gates III
GwenDragon
 2006-01-14 19:30
#6588 #6588
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
Nein, intuitiv nicht.

Aber ich würde nicht mit intuitiver Programmierung arbeiten wollen, wenn es um die Sicherheit von übergebenen Parametern geht.
Lieber schaue ich zweimal hin.

Zudem ist das Modul schon älter.

Wie wärd mit CPAN:CGI-Ex-Validate?

Du kannst ja auch ein eigenes Modul für dich schreiben.\n\n

<!--EDIT|GwenDragon|1137260062-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

esskar
 2006-01-15 02:01
#6589 #6589
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
CPAN:Data::FormValidator oder CPAN:FormValidator::Simple\n\n

<!--EDIT|esskar|1137283297-->
pug
 2006-01-15 18:17
#6590 #6590
User since
2005-08-17
91 Artikel
BenutzerIn
[default_avatar]
Ich revidiere mich, ist doch ganz brauchbar.

Gruss Christian
Ein Betriebssystem sie zu knechten, sie alle zu finden, Ins Dunkel zu treiben und ewig zu binden.

William Gates III
<< >> 8 Einträge, 1 Seite



View all threads created 2006-01-12 19:49.