Forum Webscript.Ru
		Программирование => Perl => Тема начата: alex007 от 06 Ноября 2002, 23:32:21
		
			
			- 
				Люди, помогите найти/порекомендуйте скрипт, который работал следующим образом:
1) Пользователь заполняет форму:
2) Если пароль правелен то скрипт перенаправлял пользователя в директорию/файл пользователя (для каждого юзера своя/й директория/файл )
3) Если пользователь попытается зайти в директорию/файл юзера, то его просто перенаправило на другую страницу, но не в его директорию/файл.
Жду ответов.
С Уважением
Алекс.
			 
			
			- 
				ээээ... 
1,2. А написать слабо?:))
3 - чего-то не въехал, причём здесь скрипт?
			 
			
			- 
				
3) Если пользователь попытается зайти в директорию/файл юзера, то его просто перенаправило на другую страницу, но не в его директорию/файл.
Это дело немного я не дописал, что имелось ввиду, 
для защиты от прямого адреса на директорию, тоеть не заполнив формы пользователь ни каким макаром не мог попасть в директорию/файл.
glebushka
Теперь понятно?
			 
			
			- 
				1. Действительно, проще свой скрипт написать. Такие вещи делают скорее как часть чего то большого и выдирать из комплекса одну составляющую, а потом перетачивать под себя не всегда рационально. 
2. А если пользоваться средствами сервера?
			 
			
			- 
				
 А если пользоваться средствами сервера?
Имеешь ввиду через .htpasswd?
			 
			
			- 
				
Имеешь ввиду через .htpasswd?
да (ну вернее я имел в виду, когда писал, но думаю, что и Mog. тоже:-)))
			 
			
			- 
				Вот написал скрипт,
#!/usr/local/bin/perl
##################
# Form Data Parsing 
if ($ENV{\'REQUEST_METHOD\'} eq \'GET\') { $buffer = $ENV{\'QUERY_STRING\'}; }
else { read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'}); } 
@pairs = split(/&/, $buffer); 
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $FORM{$name} = $value;
} 
################
# Comparison 
open(LIST, "passwd.txt");
  @pass = ;
close(LIST); 
foreach $line(@pass) {
   chomp($line);
   ($correctUsername,$correctPassword) = split(/\\|/,$line);
   if ($FORM{\'username\'} eq $correctUsername) {
      if($FORM{\'password\'} eq $correctPassword) 
     { 
     print "Location: http://$ENV{\'HTTP_HOST\'}/$FORM{\'username\'}/\\n\\n";
     }
      else { 
     print "Location: http://$ENV{\'HTTP_HOST\'}/\\n\\n"; }
   }
} 
Как теперь 3 пункт сделать??
			
 
			
			- 
				
Как теперь 3 пункт сделать??
Можно поискать модуль перловый и (если найдешь) почитать доки к нему :)
Можно все содержимое директорий генерить скриптом, предварительно проверяя пароль/логин.
Если цепляться за средства серверной авторизации (htaccess), то надо писать скрипт, который прикидывается браузером и сразу выдает серверу лог/пароль не дожидаясь статуса 401, а потом все это дело окуратно спихивает на браузер юзера. Это чиста из физики процессов у меня вытекло :) .  Не знаю, правда, можно ли такое сотворить. Но попробовать то млжно. Профи, ваше мнение, плиз!
			 
			
			- 
				
Но попробовать то млжно
Следует читать как "Но попробовать то можно"
Весьма пардон.