IgorCH хех... ну тогда это немного по сложнее ... при условии что страница пользователя динамическая то можно сделать так:
БД:
create table users (
users_id int not null primary key auto_increment,
username varchar(50),
password varchar(50),
redirect varchar(255)
);
пишем модуль на Perl... с применением модулей SQLayer и HTML::Template...:
AUTH.pm:
--------------------------------
package AUTH;
$AUTH::VERSION = \'1.0.0\';
use strict;
use SQLayer;
use CGI qw(:standard);
use HTML::Template;
sub check_user
{
my $user_id = cookie(\'user_id\');
if ($user_id)
{
return $user_id;
}
else
{
my $warn="You need authorization";
auth_user($warn);
exit;
}
}
sub auth_user
{
my $warn = shift;
my $T = HTML::Template -> new(filename => "auth.tmpl");
print "Content-type: text/html\\n\\n";
$T -> param(warn=>$warn);
print $T -> output();
}
sub auth_action
{
my $self = shift;
my %HKeys = @_;
my $username=$HKeys{\'username\'};
my $password=$HKeys{\'password\'};
my $D = SQLayer -> new(database => \'DBI:mysql:database=phorum;host=localhost;port=3306\', user => \'user\', passowrd => \'somepass\');
my $user_id=$D->row("SELECT users_id FROM users WHERE username=\'$username\' AND password=\'$password\'");
if ($user_id)
{
my $cookie = Create_Cookie("1h", $user_id);
my $redir=$D->row("SELECT redirect FROM users WHERE users_id=\'$user_id\'");
print redirect(-uri=>"$redir", -cookie=>$cookie);
exit;
}
else
{
my $warn="Wrong username or password";
auth_user($warn);
}
}
sub Create_Cookie
{
my $exp = shift;
my $val = shift;
my $cookie = cookie(-name => \'user_id\',
-value => $val,
-expires => $exp);
return($cookie);
}
1;
__END__;
---------------------------------------------------------------
в самом скрипте делаем слежующее:
script.cgi:
---------------------------------------------------------------
#!/usr/bin/perl -w
use strict;
use CGI qw(:standard);
use lib \'.\';
use AUTH;
my $action=param(\'action\');
if ($action eq "auth")
{
my $username=param(\'username\');
my $password=param(\'password\');
AUTH->auth_action(username=>$username, password=>$password);
}
else
{
my $user_id = AUTH->check_user();
}
---------------------------------------------------------------
В скрипте который формирует страницу пользователя вставляешь такие строчки:
use AUTH;
my $user_id = AUTH->check_user();
Ещё надо сделать шаблон авторизации:
auth.tmpl:
--------------------------------------------------------------
AUTH. Welcome to my System.
Please enter your user name and password:
|
-------------------------------------------------------------
ну вот собстевенно и все... пользуйся...