![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Всем привет !
Суть такая , имею файл для смены паролей в файле ".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>
</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;
}
|
|
|||||
|
Все достаточно просто... Если у тебя на сервакене не пишиться а дома пишиться... У перла нету ПРАВ что-бы писать. Под системами *NIX это делаеться так :
chmod -R 666 та_директория кде надо писать... Последний раз редактировалось kompadre; 01.10.2001 в 13:52. |
|
|||||
|
тема уже не актуальна ......
т.к. проблемма найдена а именно сервак не давал писать в файл .htpasswd не так что бы я без него не обошолся . ![]() |
|
|||||
|
2Gandalf:
Никогда не пиши так много кода. Я б помог чем, но просто в лом читать. Лучше б описал проблему в принципе...
__________________
Микромудия флушер <<<eR-mine<<< |
![]() |
Часовой пояс GMT +4, время: 06:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|