@raki_parat

Не работает setcookie, что делать?

Здраствуйте! Хотел сделать авторизацию в php. При установке cookie выдает ошибку на 14 линий:

<?php
$login = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
$password = filter_var(trim($_POST['password']), FILTER_SANITIZE_STRING);

$mysql = new mysqli('localhost', 'root', 'root', 'reg-bd');

$result = $mysql->query("SELECT * FROM `users` WHERE `login` = '$login' AND `password` = '$password'");
$user = $result->fetch_assoc();

setcookie('user', $user['name'], time() + 3600, "/");
?>
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
nefone
@nefone
Junior PHP разработчик
Варианта может быть два, или у вас ошибка при подключение к базе данных, надо проверять, что соединение установлено и проверять на успешное выполнение запроса:
$login = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
$password = filter_var(trim($_POST['password']), FILTER_SANITIZE_STRING);

$mysql = new mysqli('localhost', 'root', 'root', 'reg-bd');
if ($mysql->connect_errno) {
    exit('Ошибка при соединении с базой данных:  ' . $mysql->connect_error);
}

$result = $mysql->query("SELECT * FROM `users` WHERE `login` = '$login' AND `password` = '$password'");
if (!$result)
{
  exit('Ошибка при выполнении запроса: ', $mysql->error);
}
$user = $result->fetch_assoc();

setcookie('user', $user['name'], time() + 3600, "/");

//что бы проверить, что в переменно что то есть, можно вывести ее через: var_dump($user)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
28 апр. 2024, в 17:10
20000 руб./за проект
28 апр. 2024, в 15:00
100000 руб./за проект
28 апр. 2024, в 14:43
5000 руб./за проект