Разное => Поиск, изготовление скриптов и прочее... => Тема начата: IgorCH от 03 Августа 2004, 17:31:46
Название: Персанализация пользователя
Отправлено: IgorCH от 03 Августа 2004, 17:31:46
Если можете помогите написать скрипт персанализации.
Пользователь вводит свой пароль и имя, а его переправляет на его страницу или папку. Все данные пароль, имя, имя страницы (папки) хранится в БД msql.
Название: Персанализация пользователя
Отправлено: iCEBERG2k4 от 04 Августа 2004, 10:54:50
10$ ^)
Название: Персанализация пользователя
Отправлено: commander от 04 Августа 2004, 11:36:43
IgorCH страницу или папку может просматривать только данный пользователь? Или его надо просто ридирекнуть?
Название: Персанализация пользователя
Отправлено: IgorCH от 04 Августа 2004, 12:17:35
Да только данный пользователь
Название: Персанализация пользователя
Отправлено: commander от 04 Августа 2004, 13:10:36
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:
password:
------------------------------------------------------------- ну вот собстевенно и все... пользуйся... :)