Доброго времени суток.
Код срабатывает через раз.
А именно if(mysql_num_rows($result) < 1 ) .
Данная проблема возникает сразу после регистрации нового пользователя, при переходе с обработчика на главную страницу.
Такое ощущение что в бд еще не успела попасть информация, а запрос уже был подан.
Как такое лечится ?
$row_cat = mysql_fetch_assoc($result); - выдает FALSE. НО должна быть array.
$row_cat2 = mysql_num_rows ($result); - выдает 0. Хотя должна быть 1, т.к. регистрация прошла, в базе есть данные и присутствует сессия!
CODE ( htmlphp):
скопировать код в буфер обмена
if (isset($_SESSION['login']) && isset($_SESSION['password'])) { $email_1 = $_SESSION['email']; $password_1 = md5($_SESSION['$password']); $login_1 = $_SESSION['login']; } $query = "SELECT * FROM users WHERE login = '$login_1'"; $result = mysql_query($query) or die ( "ОШИБКА : ".mysql_error() ); $row_cat = mysql_fetch_assoc($result); $row_cat2 = mysql_num_rows ($result); if(mysql_num_rows($result) < 1 ) { echo "<center><b><span style='color:red'>Вы не авторизованы! Необходимо авторизоваться, или зарегистрируйтесь если у вас нет логина и пароля!</span></center></b><br>"; } else { echo "<div align='right'> <span style='color:green'>Вы авторизованы под логином :<b> $login_1 </b></span></div><br>"; echo "<div align='right'><html><form action='exit.php'> <input type='submit' VALUE='Выйти'/> </form></html><br></div>"; }
(Отредактировано автором: 07 Января, 2017 - 00:50:50)
|