Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > Perl

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 29.09.2001, 15:37
Gandalf вне форума Посмотреть профиль Отправить личное сообщение для Gandalf Найти все сообщения от Gandalf
  № 1  
Gandalf

Регистрация: Jul 2000
Адрес: Kitchener/Canada
Сообщений: 114
Отправить сообщение для Gandalf с помощью ICQ
Attention HELP PLZ открытие и писание в файл !

Всем привет !
Суть такая , имею файл для смены паролей в файле ".htpasswd"
НО !
Все хорошо работает на локалном диске , но на сервере не работает вопрос
В чём может быть проблемма ????

ЗЫ: gvars.txt это файл с переменными , которые используються в каждом скрипте !
Сам парольный файл работает , т.е. когда захожу на запророленный ресурс , то выскакивает диалог введения пароля !
Да так же , всегда выскакивает на последнюю ошибку см. строчку "$bad= "Error , maybe you typed in wrong username or/and password.";
&bad;
"
пробывал отоброжать то что прочитали и то что написали , одинаково , но почему то не срабатывает
Не срабатывает if который идёт сразу после foreach
Код:
#!/usr/local/bin/perl
$passfile=".htpasswd";
require "gvars.txt";
print "Content-type: text/html\n\n";
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;
        
        
        $input{$name} = $value;
}
if (($input{'submit'}) eq 'ok') { &ch;}
&head;

sub ch {
open (data, "<$passfile") or &error("Unable to open the data file");
flock data, 2; 
@data=<data>;
close(data); 

$password = crypt($input{'opassword'}, "YL");
$cpassword = crypt($input{'password1'}, "YL");
foreach $line (@data) {
		($logg,$psww) = split(/:/,$line); 
		chomp $psww; 
		if ((($input{'username'}) eq $logg)&&($password eq $psww))
		{
			if (($input{'password1'}) eq ($input{'password2'})){
				@data[$a]="$input{'username'}:$cpassword\n";
				open (data, ">$passfile") or &error("Unable to write to the data file");
					print data @data;
				close data;
				&done;
				exit;
			}
			$bad= "New passwords are not the same";
			&bad;
			exit;
		}
		$a++;

	}
$bad= "Error , maybe you typed in wrong username or/and password.";
&bad;
exit;
}

sub head {
print qq~

<html>
<head>
<BASE href=$site>
<link href=styles.css rel=stylesheet type=text/css>
<link href=make.css rel=stylesheet type=text/css>
<SCRIPT language=javaScript src='java.js' type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src='java1.js' type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src='java_m.js' type=text/javascript></SCRIPT>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<title></title>
</head>
<body bgcolor=000000  onLoad="window.defaultStatus='Подвалы и звероящеры';">
<center>
  <br>
  <br>
  <!-- begin main table -->
  <table border=0 cellpadding=0 cellspacing=0 width=725>
    <tr> 
      <td background=0 colspan=3><img src=border/top.gif border=0 width=725 height=46></td>
    </tr>
    <tr> 
      <td background=border/left.gif width=41></td>
      <td width=640><center><br><br>
<form method="post">
<table border=0 width=640>
	<tr>
		<td align=right>
			<font>Login:</font>
		</td>
		<td>
			<input type='text' name='username' size=38>
		</td>
	</tr>
	<tr>
		<td align=right>
			<font>Old Password:</font>
		</td>
		<td>
			<input type='password' name='opassword'  size=38>
		</td>
	</tr>
	<tr>
		<td align=right>
			<font>New Password:</font>
		</td>
		<td>
			<input type='password' name='password1'  size=38>
		</td>
	</tr>
	<tr>
		<td align=right>
			<font>Repeat New Password:</font>
		</td>
		<td>
			<input type='password' name='password2'  size=38>
		</td>
	</tr>	
	<tr>
		<td align=right>
		&nbsp;	
		</td>
		<td>
			<input type='submit' name='submit' value='ok' style="width:45px;">
			<input type="reset" name="reset" value="reset" style="width:45px;">
		</td>
	</tr>

</table>
</form>	

<br><br>
	</center>
      </td>
      <td background=border/right.gif width=44></td>
    </tr>
    <tr> 
      <td background=0 colspan=3><img src=border/bot.gif border=0 width=725 height=49></td>
    </tr>
  </table>
<br>
<br>
</center>
</body>
</html>
~;
}

sub done {
print qq~

<html>
<head>
<BASE href=$site>
<link href=styles.css rel=stylesheet type=text/css>
<link href=make.css rel=stylesheet type=text/css>
<SCRIPT language=javaScript src='java.js' type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src='java1.js' type=text/javascript></SCRIPT>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Refresh" CONTENT="3; URL=make.pl">
<title></title>
</head>
<body bgcolor=000000  onLoad="window.defaultStatus='Подвалы и звероящеры';">
<center>
  <br>
  <br>
  <!-- begin main table -->
  <table border=0 cellpadding=0 cellspacing=0 width=725>
    <tr> 
      <td background=0 colspan=3><img src=border/top.gif border=0 width=725 height=46></td>
    </tr>
    <tr> 
      <td background=border/left.gif width=41></td>
      <td width=640>
<br><br>

<blockquote>
<b><font style="font-size:10pt;">Everything is ok , now you will be redirected back to the LogIn page.</font></b><br><br>
</blockquote>

<br><br>
      </td>
      <td background=border/right.gif width=44></td>
    </tr>
    <tr> 
      <td background=0 colspan=3><img src=border/bot.gif border=0 width=725 height=49></td>
    </tr>
  </table>
<br>
<br>
</center>
</body>
</html>
~;
}

sub bad {
print qq~
<html>
<head>
<BASE href=$site>
<link href=styles.css rel=stylesheet type=text/css>
<link href=make.css rel=stylesheet type=text/css>
<SCRIPT language=javaScript src='java.js' type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src='java1.js' type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src='java_m.js' type=text/javascript></SCRIPT>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<title></title>
</head>
<body bgcolor=000000  onLoad="window.defaultStatus='Подвалы и звероящеры';">
<center>
  <br>
  <br>
  <!-- begin main table -->
  <table border=0 cellpadding=0 cellspacing=0 width=725>
    <tr> 
      <td background=0 colspan=3><img src=border/top.gif border=0 width=725 height=46></td>
    </tr>
    <tr> 
      <td background=border/left.gif width=41></td>
      <td width=640>
<br><br>
<blockquote>
<b><font style="color:red; font-size:12pt;">$bad</font></b><br><br>
</blockquote>
<br><br>
      </td>
      <td background=border/right.gif width=44></td>
    </tr>
    <tr> 
      <td background=0 colspan=3><img src=border/bot.gif border=0 width=725 height=49></td>
    </tr>
  </table>
<br>
<br>
</center>
</body>
</html>
~;
}
sub error {
print "An error has occured. <br> The error is $_[0]<br>\n";	
print "$!\n";	
exit;	
}

Старый 01.10.2001, 13:50
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 2  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Все достаточно просто... Если у тебя на сервакене не пишиться а дома пишиться... У перла нету ПРАВ что-бы писать. Под системами *NIX это делаеться так :
chmod -R 666 та_директория кде надо писать...


Последний раз редактировалось kompadre; 01.10.2001 в 13:52.
Старый 01.10.2001, 13:54
Gandalf вне форума Посмотреть профиль Отправить личное сообщение для Gandalf Найти все сообщения от Gandalf
  № 3  
Gandalf

Регистрация: Jul 2000
Адрес: Kitchener/Canada
Сообщений: 114
Отправить сообщение для Gandalf с помощью ICQ
тема уже не актуальна ......
т.к. проблемма найдена
а именно сервак не давал писать в файл .htpasswd
не так что бы я без него не обошолся .

Старый 01.10.2001, 16:46
er-mine2000 вне форума Посмотреть профиль Отправить личное сообщение для er-mine2000 Посетить домашнюю страницу er-mine2000 Найти все сообщения от er-mine2000
  № 4  
er-mine2000
 
Аватар для er-mine2000

Регистрация: Mar 2001
Адрес: Saint-Petersburg
Сообщений: 221
Отправить сообщение для er-mine2000 с помощью AIM Отправить сообщение для er-mine2000 с помощью Yahoo
2Gandalf:
Никогда не пиши так много кода. Я б помог чем, но просто в лом читать. Лучше б описал проблему в принципе...
__________________
Микромудия флушер
<<<eR-mine<<<

Создать новую тему   Часовой пояс GMT +4, время: 06:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:42.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.