
13.12.2007, 04:47
|
|
Участник форума
Регистрация: 21.12.2006
Сообщений: 179
Провел на форуме: 1428298
Репутация:
65
|
|
В неком файле на серваке заданы пассы и логины через разделитель. Есть форма, где поля логин и пасс.
проверяем введенные логин и пасс.
для начала написал только проверку логина. ниже приведен код.
Проблема в том, что
Код:
if ($arr[$m]->[$n]==$obtained_login)
выполняется всегда, если первый символ логина - буква. Если цифра - не выполняется.
Объясните, пожалуйста, почему так происходит.
Код HTML:
<html>
<head>
<title>xz</title>
</head>
<body>
<form action="lab20.pl" method="post">
LOGIN <input type="text" name="login"><p>
БЗДЫДЫЩ: <input type="text" name="pass"><p>
<input type="submit" value="check">
</form>
</body>
</html>
Код:
#!/usr/bin/perl -w
use CGI;
print "Content-type:text/html;charset=windows-1251\n\n";
$q = new CGI;
$obtained_login = $q->param('login');
$obtained_password = $q->param('pass');
open(DATA, "users.txt");
$i=0;
foreach $line(<DATA>)
{
$j=0;
@temp=split (/;/,$line);
while ($j<=$#temp)
{
$arr[$i]->[$j]=$temp[$j];
$j++;
}
$i++;
}
close(DATA);
for($m=0; $m<$i; $m++)
{
for ($n=0;$n<$j; $n++)
{
if ($arr[$m]->[$n]==$obtained_login)
{
print "good";
}
else { print "bad";}
}
}
|
|
|