Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Срабатывание кода через раз

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Romarione
Отправлено: 06 Января, 2017 - 22:08:09
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Доброго времени суток.
Код срабатывает через раз.
А именно if(mysql_num_rows($result) < 1 ) .
Данная проблема возникает сразу после регистрации нового пользователя, при переходе с обработчика на главную страницу.
Такое ощущение что в бд еще не успела попасть информация, а запрос уже был подан.
Как такое лечится ?

$row_cat = mysql_fetch_assoc($result); - выдает FALSE. НО должна быть array.
$row_cat2 = mysql_num_rows ($result); - выдает 0. Хотя должна быть 1, т.к. регистрация прошла, в базе есть данные и присутствует сессия!

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if (isset($_SESSION['login']) && isset($_SESSION['password'])) {
  3.                 $email_1 = $_SESSION['email'];
  4.                 $password_1 = md5($_SESSION['$password']);
  5.                 $login_1 = $_SESSION['login'];
  6.         }
  7.        
  8.         $query = "SELECT * FROM users WHERE login = '$login_1'";
  9.         $result = mysql_query($query) or die ( "ОШИБКА : ".mysql_error() );
  10.         $row_cat = mysql_fetch_assoc($result);
  11.         $row_cat2 = mysql_num_rows ($result);
  12.        
  13.        
  14.        
  15.         if(mysql_num_rows($result) <  1 ) {
  16.                 echo "<center><b><span style='color:red'>Вы не авторизованы! Необходимо авторизоваться, или зарегистрируйтесь если у вас нет логина и пароля!</span></center></b><br>";
  17.                         }
  18.         else {
  19.                 echo "<div align='right'> <span style='color:green'>Вы авторизованы под логином :<b> $login_1 </b></span></div><br>";
  20.                 echo "<div align='right'><html><form action='exit.php'>
  21.                 <input type='submit' VALUE='Выйти'/>
  22.                 </form></html><br></div>";
  23.         }
  24.  

(Отредактировано автором: 07 Января, 2017 - 00:50:50)

 
 Top
Fart
Отправлено: 08 Января, 2017 - 12:22:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




хотя вы говорите, что все данные есть, но $login_1 - отследите эту переменную.

имеются ли значения?!
 
 Top
Romarione
Отправлено: 08 Января, 2017 - 15:51:59
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Fart пишет:
хотя вы говорите, что все данные есть, но $login_1 - отследите эту переменную.

имеются ли значения?!



Спасибо, пошло какое то продвижение..

Если присваиваю значение то все работает.

НО

у меня же есть этот код

if (isset($_SESSION['login']) && isset($_SESSION['password'])) {
$email_1 = $_SESSION['email'];
$password_1 = md5($_SESSION['$password']);
$login_1 = $_SESSION['login'];
}

Ведь я ему говорю, что если есть сессия с логином и с паролем то присваиваем переменная = сессия;

(Отредактировано автором: 08 Января, 2017 - 16:01:18)

 
 Top
Строитель Модератор
Отправлено: 08 Января, 2017 - 16:48:27
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Romarione, вы проверяете так :

Если есть $_SESSION['login'] и $_SESSION['password']

а в переменную $email_1 почему-то записываете $_SESSION['email'];

А вы проверяли где-то её существование? Я про $_SESSION['email']
 
 Top
Romarione
Отправлено: 08 Января, 2017 - 16:55:09
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Строитель пишет:
Romarione, вы проверяете так :

Если есть $_SESSION['login'] и $_SESSION['password']

а в переменную $email_1 почему-то записываете $_SESSION['email'];

А вы проверяли где-то её существование? Я про $_SESSION['email']


Email я раньше использовал вместо логина. Потом решил авторизовывать по логину.
А строку не не стёр. Но мне кажется это не влияет на результат

(Отредактировано автором: 08 Января, 2017 - 16:58:23)

 
 Top
Строитель Модератор
Отправлено: 08 Января, 2017 - 17:11:00
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Romarione пишет:
Но мне кажется
Это не аргумент для программы. Проверять нужно всё.
 
 Top
Romarione
Отправлено: 08 Января, 2017 - 17:16:39
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Строитель пишет:
Romarione пишет:
Но мне кажется
Это не аргумент для программы. Проверять нужно всё.


Я проверил - это не влияет никак.
(Добавление)
Наконец таки решил проблему.
$_SESSION["password"] = $password;
Это надо было написать в обработчик при регистрации.
Как же обидно.. Из-за такой фигни потерял 2 дня
 
 Top
Quest
Отправлено: 09 Января, 2017 - 10:06:33
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.         $row_cat2 = mysql_num_rows ($result);
  2.        
  3.        
  4.        
  5.         if(mysql_num_rows($result) <  1 ) {


зачем 2 раза делать одно и то же?

В целом код плохой и небезопасный
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB