powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) проблемы передачи логина между различными Perl-скриптами
3 сообщений из 3, страница 1 из 1
(Perl) проблемы передачи логина между различными Perl-скриптами
    #33595428
Cyber Craft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

У меня есть форум собственной разработки, т. е. весь код писал сам. Есть несколько Perl-скриптов: enter.pl, messagelist.pl, newmessage.pl, newtopic.pl, registr.pl, topiclist.pl, users.pl. При просмотре форумов, которые сделаны профессионалами, мы можем заметить ссылку <Вход> на верхней странице. А при входе в форум, введя логин и пароль, то можно создавать темы, отправлять сообщения и т.д. от зарегистрированных аккаунтов. И на верхней странице уже отображается <Выход [логин_пользователя]>. И если нажимать различные ссылки на этих форумах, т.е. внутри одного форума, нпр, <Новая тема>, <Отправить сообщение>, и т.д., то логин передается между различными Perl-скриптами.

Вопрос: А как делается так, чтобы при нажатии на ссылки, типа <Новая тема>, <Отправить сообщение>, имя пользователя (логин) передавался между различными Perl-скриптами. Я начинающий программист на Perl, и надеюсь, опишите все подробно.
...
Рейтинг: 0 / 0
(Perl) проблемы передачи логина между различными Perl-скриптами
    #33595775
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для этого существуют теневые посылки, более известные как куки, либо сессии.

Если будешь использовать сессии, посмотри готовые модули на CPAN

Если куки, то, воспользуйса, например, модулем CGI::Cookie, но лучше писать самому вручную, в приложение к сообщения фаил, в котором описано как это делать.
1. При авторизации проверяем введенный логин и пароль, если они валидны, то шифруешь введенный пароль
Код: plaintext
1.
2.
3.
# ключ кодирования пароля ( можешь использвоать любой )
my $crypt_sym = "d;jald900askdasdas0q93ka;dksada"; 
my $password = crypt( "пароль" , $crypt_sym);
далее генерируешь куки
Код: plaintext
1.
2.
3.
use CGI::Cookie;
my $cook1 = new CGI::Cookie(-name => 'login', -value => "логин_пользователя", -path => '/', -expires=>'+30d');
my $cook2 = new CGI::Cookie(-name => 'password', -value => "$password", -path => '/', -expires=>'+30d');
выставляешь куки, ты должен это сделать до выставление заголовка ответа!
Код: plaintext
1.
2.
print "Set-Cookie: $cook1\n"; 
print "Set-Cookie: $cook2\n"; 

Этот код положи в начало главного скрипта (разбор куков)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
foreach ( split( /;\s*/, $ENV{'HTTP_COOKIE'} ) ) {
	my($name, $content) = split( /=/ );
	$name = tr/+/ /;
	$name = s/%([a-fA-F0- 9 ][a-fA-F0- 9 ])/pack( "C", hex($ 1 ) )/ge;
	$content = tr/+/ /;
	$content = s/%([a-fA-F0- 9 ][a-fA-F0- 9 ])/pack( "C", hex($ 1 ) )/ge;
			
	$cookie{$name} = $content;
}

Теперь в начале скрипта проверяешь переданые куки с логин и паролем в твоей базе
Код: plaintext
1.
2.
3.
4.
5.
$password = crypt( "пароль" , $crypt_sym);

if ( $cookie{'login'} eq "$login" && $cookie{'password'} eq "$password" ) {
	our $user_login =  1 ; # Пользователь авторизован!
}

p.s. для работы с CGI можешь посмотреть мой модуль Black::CGI

обсуждени модуля Black::CGI, обсуждение модуля
...
Рейтинг: 0 / 0
(Perl) проблемы передачи логина между различными Perl-скриптами
    #33595784
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) проблемы передачи логина между различными Perl-скриптами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]