Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите с авторизацией
 
 автор: Crazy.Fox   (27.06.2006 в 10:32)   письмо автору
 
 

столкнулся вот с такой проблемой, при выборке данных из таблици проверяеться только последняя запись. Подскажите кто знает в чём ошибка.
Переменные $lg и $ps передаются из формы.


<?
include"conf.cf";
@
mysql_connect("$cfconf5""$cfconf6""$cfconf7") or die("Нет связи с сервером БД!");
@
mysql_select_db("$cfconf6") or die("Нет связи с БД!");
$srg1="SELECT log,pass FROM hr_users";
$srg2 mysql_query($srg1);
$x 0;
while (
$x mysql_numrows($srg2)) :
$r1 mysql_result($srg2$x'log');
$r2 mysql_result($srg2$x'pass');
$x++;
if((
$r1 === $lg)&&($r2===$ps))
{echo
"вы вошли";}
else
{echo
"не верный логин и пароль";}
endwhile;
mysql_close();
?>

   
 
 автор: lexal   (27.06.2006 в 10:45)   письмо автору
 
   для: Crazy.Fox   (27.06.2006 в 10:32)
 

А в базе все записи?

   
 
 автор: Crazy.Fox   (27.06.2006 в 10:55)   письмо автору
 
   для: lexal   (27.06.2006 в 10:45)
 

создаю к примеру 3-4 записи, выбераются все, но проверяется только последняя, в чём проблема не понимаю

   
 
 автор: cheops   (27.06.2006 в 11:23)   письмо автору
 
   для: Crazy.Fox   (27.06.2006 в 10:32)
 

Хм... так а у вас цикл по результирующей таблице отсуствует...

   
 
 автор: Crazy.Fox   (27.06.2006 в 11:42)   письмо автору
 
   для: cheops   (27.06.2006 в 11:23)
 

хм.. а поподробней если не сложно конечно

   
 
 автор: cheops   (27.06.2006 в 11:52)   письмо автору
 
   для: Crazy.Fox   (27.06.2006 в 11:42)
 

Лучше заменить блок
<?php
while ($x mysql_numrows($srg2)) : 
  
$r1 mysql_result($srg2$x'log'); 
  
$r2 mysql_result($srg2$x'pass'); 
  
$x++; 
  if((
$r1 === $lg)&&($r2===$ps)) 
  {echo
"вы вошли";} 
  else 
  {echo
"не верный логин и пароль";} 
endwhile;
?>

на
<?php
if($x mysql_numrows($srg2))
while (
$result mysql_fetch_array($srg2)) : 
  
$x++; 
  if((
$result['log'] === $lg)&&($result['pass']===$ps)) 
  {echo
"вы вошли";} 
  else 
  {echo
"не верный логин и пароль";} 
endwhile;
?>

А вообще при авторизации лучше не перебирать циклом результирующую таблицу, а проверить это в запросе, так как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=80

   
 
 автор: Crazy.Fox   (27.06.2006 в 11:58)   письмо автору
 
   для: cheops   (27.06.2006 в 11:52)
 

Огромное спасибо, обязательно попробую может поможет.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования