Начал писать авторизацию на своем форуме, но застрял вообще на ерунде какой-то. Я в тупике, вообще не могу понять в чем дело =(
Смотрите сами, - вот форма авторизации:
print qq~
<table align=center width=90%>
<th>Авторизация:</th>
<tr><td><center>
<form method=post action=f.pl>
Логин: <input name=FAlogin>
Пароль: <input name=FApassw type=password>
<input name=action type=hidden value=auth>
<input type=submit value=Войти>
<a href=f.pl?act=reg>Регистрация</a>
</form>
</table>
~;
$FAlogin = $cgi->param("FAlogin");
$FApassw = $cgi->param("FApassw");
if ($action eq "auth")
{
&auth;
}
---
Вот подпрограмма, которая вызывается при авторизации и, по идее, должна авторизировать пользователя (она пока что только выводит javascript окна, которые сообщаю либо при ошибках при авторизации, либо о успешной авторизации):
sub auth {
if (-e "users/$FAlogin.user")
{
open UF, "users/$FAlogin.user";
@ui = <UF>;
close UF;
$passw = $ui[1];
$Cpassw = crypt($passw, $passw);
if ($Cpassw eq $FApassw)
{
print "<script language=\"JavaScript\">alert(\'Вы успешно авторизированы!\');</script>";
}else
{
print "<script language=\"JavaScript\">alert(\'Неверный пароль!\');</script>";
}
}else
{
print "<script language=\"JavaScript\">alert(\'Пользователя с таким именем не существует!\');</script>";
}
}
---
Пароль юзера, зашифрованный crypt(); хранится второй строкой в файле. Вот пример такого файла (ну на всякий случай):
main_c0der
pauONM/HSu9pM
0
---
Первая строчка - статус юзера, вторая - тот самый зашифрованный пароль, третья - уровень доступа к форуму.
Теперь проблема. При вводе логина и пароля в форму авторизации выдается ошибка "Неверный пароль!".
Хотя пароль я ввожу верный, - это 100%.
Почему так происходит я просто не могу понять. Надеюсь на вашу помощь.
|