Ошибка при отправке заголовков в php

Рейтинг: -1Ответов: 1Опубликовано: 15.01.2023

Нужно отправить заголовки после бд, чтобы получилось так

include __DIR__ . '/../../database/db.php';

$user = $db->real_escape_string($data['user_id']);
$access_token = $db->query("SELECT `access_token` FROM `users` WHERE `user_name` = '$user'")->fetch_column();

if (empty($access_token)) {
  $access_token = md5($data['access_token']);
  $db->query("INSERT INTO `users` (`user_name`, `access_token`) VALUES ('$user', '$access_token')");
}

setcookie("access_token", $access_token, time() + (3600 * 24 * 30), '/');
header('Location: /');

Но проблема в том что когда выполняешь include бд то заголовки отправить уже нельзя, как можно решить данную проблему и поможет ли с этим ob_start(); ob_flush();

Ответы

▲ 0

Проблема заключалась в запросе к бд сравните код

    include __DIR__ . '/../../database/db.php';

$access_token = $db->query("SELECT `access_token` FROM `users` WHERE `user_name` = '$data[user_id]'")->fetch_assoc();

if (empty($access_token)) {
  $access_token = md5($data['access_token']);
  $db->query("INSERT INTO `users` (`user_name`, `access_token`) VALUES ('$user', '$access_token')");
} else {
  $access_token = $access_token['access_token'];
}

setcookie("access_token", $access_token, time() + (3600 * 24 * 30), '/');
header('Location: /');