session_start();
if (isset($_POST['userid']) && isset($_POST['password']))
{
// Если пользователь как раз пытался зарегистрироваться
$userid = $_POST['userid'];
$password = $_POST['password'];
$db_conn = new mysqli('localhost', 'webauth', 'webauth', 'auth');
if (mysqli_connect_errno()) {
echo 'Невозможно подключиться к базе данных: '.mysqli_connect_error();
exit();
}
$query = 'select * from auth '
."where name='$userid' "
." and passwd=sha1('$password')";
$result = $db_conn->query($query);
if ($result->num_rows > 0 ) // при обработке этой строки выдаеться выше описаная ошибка.
{
// Если пользователь найден в базе данных, регистрируем его идентификатор
$_SESSION['valid_user'] = $userid;
}
$db_conn->close();
}
?>
Спустя 42 минуты, 15 секунд (15.12.2007 - 11:55) vasa_c написал(а):
Читайте сообщения об ошибках и занимайтесь хотя бы элементарной отладкой.
Пишет же — попытка получить свойство необъекта.
Значит в $result не объект. Значит query вернула в результате не объект mysqli_result. Для SELECT здесь один вариант — ошибка в запросе.
Проверяйте код ошибки, выводите её описание.
Сам запрос выведите, так как непонятно, что в переменных.
Выше делается if (isset($_POST...), но else для него нет. Что будет если в посте не пришли переменные? Что будет если они не пришли в нужном формате? Почитайте про экранирование данных в SQL-запросе.
Пишет же — попытка получить свойство необъекта.
Значит в $result не объект. Значит query вернула в результате не объект mysqli_result. Для SELECT здесь один вариант — ошибка в запросе.
Проверяйте код ошибки, выводите её описание.
Сам запрос выведите, так как непонятно, что в переменных.
Выше делается if (isset($_POST...), но else для него нет. Что будет если в посте не пришли переменные? Что будет если они не пришли в нужном формате? Почитайте про экранирование данных в SQL-запросе.
Спустя 1 час, 19 минут, 15 секунд (15.12.2007 - 13:14) speaker_nsk написал(а):
Да пример не из лучших, Спасибо, я понял, что ошибка в запросе.
Я думал, что у меня конфигурация сервера и php не правильная.
Спасибо.
Я думал, что у меня конфигурация сервера и php не правильная.
Спасибо.