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

  #5978  
Старый 05.11.2008, 09:01
Gifts
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 оО, ты это к чему?
 
Ответить с цитированием