Поместите код, который проверяет, равно ли число строк нулю перед оператором mysql_fetch_object($result)
. Таким образом, вы не тратите лишний цикл ЦП, если пользователь не существует.
Изменить это (в обоих местах):
mysql_result($result, 0, 'id');
до
$row->id;
Кроме того, если ваш столбец id
не является санитарно-гигиеническим (то есть пользователь в какой-то момент ввел для него некоторые данные), вы захотите избежать его в своем запросе UPDATE
.
Это просто вопрос предпочтения, но когда я проверяю наличие параметров URL, мне нравится использовать !empty()
вместо isset
. Причина в том, что если параметр установлен, но пустой, он все равно вернет false:
!empty($_POST['remember'])
Также на этой ноте обязательно продезинфицируйте $_COOKIE['remember']
. Значения cookie могут быть изменены пользователем.
mysql_query("SELECT * FROM users WHERE sessionkey = '" . mysql_real_escape_string($_COOKIE[remember]) . "'");
И, наконец, было бы неплохо не выбирать *
в своем запросе, так как это может привести к снижению производительности в дальнейшем в вашем приложении. Попробуйте просто выбрать, скажем, идентификатор пользователя:
mysql_query("SELECT id FROM users ...
Все остальное выглядит довольно хорошо!