
05.11.2008, 09:01
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами:
9497186
Репутация:
1304
|
|
UnPazz
Во-первых - цикл for будет каждую итерацию считать количество строк полученых из запроса. Поэтому надо всегда ДО цикла посчитать количество элементов, а потом использовать просто переменную.
Во-вторых, функция mysql_fetch_array и ей подобные разбирает строку и переводит внутренний указатель на следующую строку, то есть достаточно:
PHP код:
while ($f=mysql_fetch_array($table))
{
if ( ($f[login]==$_POST['login']) && ($f[pass]==$_POST['password']) ) header ("Location: admin.php");
}
Ну и наконец - чем брать всю таблицу и ста тыщ мильенов элементов дешевле - сделать нормальный запрос к БД
PHP код:
if (!preg_match('#[a-zA-Z0-9\_]{4,16}#',$_POST['login']) || !preg_match('#[a-zA-Z0-9\_]{4,16}#',$_POST['password'])) die();
$table=mysql_query("SELECT * FROM table WHERE user='".$_POST['login']."' AND password='".$_POST['password']."'");
if (mysql_num_rows($table)!=0) {header ("Location: admin.php");}
else {die('Неправильный логин/пароль');}
PHPoozy оО, ты это к чему?
|
|
|