Questo è ciò che avevo fatto e che non funziona:
Prog principale
#!/opt/InfoVista/ivperl/bin/perl -w
use lib qw(/opt/InfoVista/ivperl/lib/site_perl/5.6.1);
use CGI;
use infovista;
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
";
print "Home
";
print $query->startform();
print "<hr color='blue'>";
if ($query->param('userAdd')) #userAdd proviene da uno script precedente
{
print "<center>";
print "
Create User
";
&createUser;
print "<center>";
}
if ($query->param('password') ne $query->param('passwordcopy'))
{
&createUser("err passwd");
}
if ($query->param('Ok'))
{
&createUser;
}
print $query->endform;
print $query->end_html;
Questa è la subroutine:
sub createUser
{
my $errore = shift; #prende il primo parametro passato alla subroutine e lo elimina dalla coda
if ($errore ne '')
{
print $errore; #stampa l'errore
};
print "<center>";
print $query->startform();
print $query->start_table();
print "<tr><td>Username</td><td>";
print $query->textfield(-name=>'username',
-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>";
$idProfile = 3; #numero identificativo del profilo administrator
$nome = $query->param("username");
$passwd = $query->param("password");
%newUser = $connection->create ("user",
{
"LoginName" => "$nome",
"Password" => "$passwd",
"Profile" => [$idProfile + 0]
});
$msg = ($connection->getStatusMessage())[0];
if ($msg ne "ok") {
print "<center>";
print "$msg
";
print "Warning! This user already exists!
";
&getUserMgmt;
print "</center>";
}
else{
print $query->hidden(
-name => "newUserHidden",
-override => 1,
-value => $nome
);
print "Ok, User created!
";
}
}