helmut_kenig
@helmut_kenig
...

В чем может быть ошибка?

$userphone = trim($_POST['userphone']);//Username
	$password = md5(trim($_POST['password']));//Password
	
	$query = "SELECT id, userphone, username, avatar FROM users WHERE userphone = '{$userphone}', password = '{$password}' LIMIT 1"; //Поиск пользователя в базе
	$result = mysql_query($query);
	
	if(mysql_num_rows($result) == 1){
		$found_user = mysql_fetch_array($result);
		$_SESSION['user_id'] = $found_user['id'];
		$_SESSION['userphone'] = $found_user['userphone'];
		$_SESSION['username'] = $found_user['username'];
		$_SESSION['avatar'] = $found_user['avatar'];
		header('Location: /news');	//Перенаправление на главную
	}


После попытки залогиниться пишет: Warning: mysql_num_rows() expects parameter 1 to be resource,
Это произошло после того как я добавил эти строки:

В $query username и avatar

и в if(mysql_num_rows($result) == 1)
///
$_SESSION['username'] = $found_user['username'];
		$_SESSION['avatar'] = $found_user['avatar'];


До этого все работало

----------------------------------------------------------------------------------------------------------------------------------
Ребята, спасибо всем кто помог :D
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
Skiphog
@Skiphog
PHP Crutch developer
1. Ошибка в запросе
WHERE userphone = '{$userphone}', password = '{$password}'

заменить на
WHERE userphone = '{$userphone}' AND password = '{$password}'


2. Экранируйте данные перед вставкой в запрос, иначе ваш скрипт упадет, если у пользователя будет имя, например Д'артаньян.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
BuriK666
@BuriK666
Компьютерный псих
mysql - deprecated, используйте либо mysqli, либо PDO
У Вас не экранируются переменные.

Ну и mysql_query может вернуть false php.net/manual/ru/function.mysql-query.php
смотрите mysql_error()
Ответ написан
Writerim
@Writerim
Заполнить позже...
А в таблице есть эти поля?
Просто это ошибка говорит о том, что результат не равен ресурсу, чтобы из него получить кол-во строк - то есть ваш результат равен false
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы