PDA

Visualizza la versione completa : form creazione utenti


mcgyver75
05-01-2005, 11:19
Salve a tutti e perdonate come al solito le domande banali di un bimbo che da poco si avvicina al perl e col quale non è ancora riuscito a simpatizzare...dovrei fare uno script cgi per la creazione di nuovi utenti: oltre a farmi apparire il form classico
username:
pwd:
confirmpwd:
che ho già fatto, deve farmi un controllo sia sull'user che non deve essere "administrator", sia sull'uguaglianza di pwd e confirmpwd...in tali casi dovrà apparirmi nuovamente il form (che richiamo con la funzione "createUser")e un apposito messaggio di warning.
I miei problemi sono su questi controlli, non è che qualcuno di buon cuore mi può mettere sulla buona strada??
Grazie mille
Mc
Allego parte del codice:

use CGI;
require "Funzioni.pl";

open(OUT, ">debug.txt");

$query = new CGI;

print $query->header();
print $query->start_html(-title=>'View',
-bgcolor=>'9999FF'
);
&ivConnectionCookie; #### funzioni.pl ####

print "<font face='Lucida Console'>";
print "Login ('Login.cgi')
";
print "Home ('Instances.cgi')
";


print $query->startform();

print "<hr color='blue'>";



if ($query->param('userAdd'))
{
print "<center>";
print "
Create User

";
print "

";
&createUser;
print "<center>";
}
print $query->endform;
print $query->end_html;

#######
#### Funzione per la visualizzazione del form
####
#######
sub createUser
{
print "<center>";

print $query->startform(-method=>post,
-action=>"new.cgi"); #qui c'è un
#errore perchè non intendo passare i parametri ad un nuovo cgi, #bensì a delle subroutine

print $query->start_table();

print "<tr><td>Username</td><td>";
print $query->textfield(-name=>'useralias',
-size=>'30');
print "</td></tr>";

print "<tr><td>
Password</td><td>";
print "
";
print $query->password_field(-name=>'password',
-size=>'30');
print "</td></tr>";

print "<tr><td>
Confirm Password</td><td>";
print "
";
print $query->password_field(-name=>'passwordcopy',
-size=>'30');
print "</td></tr>";


print $query->end_table;
print $query->submit('Ok','Ok');
print $query->endform;

print "</center>";


}

FreeManX
05-01-2005, 14:24
prima devi modificare cosi createUser

sub createUser {
my $errore = shift #prende il primo parametro passato alla subroutine e lo elimina dalla coda

if ($errore ne '') {
#se la stringa non e vuota
print $errore; #stampa l'errore;
}



if ($query->param('useralias') eq "administrator") &createUser("no admin");
if ($query->param('password') ne $query->param('passwordcopy')) &createUser("err passwd");

basta l'indirizzo ? :)

mcgyver75
05-01-2005, 15:20
Grazie, ora modifico e ci rifletto su!

Loading