Показать сообщение отдельно

  #2  
Старый 13.12.2007, 04:47
gizmo
Участник форума
Регистрация: 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";}

 }
}
 
Ответить с цитированием