Проблема заключается в том, что переменная $variable не сохраняет в себе $_GET['id']. Возможно, проблема связана с тем, что переменная $_GET['id'] не определена или не передана в URL. Для того, чтобы исправить эту проблему, можно попробовать следующее:
Убедиться, что параметр id передается в URL. Для этого можно проверить URL страницы, на которой используется этот код. Например, если URL выглядит как http://message.com/message.php?id=2, то параметр id равен 2.
Проверить, что переменная $_GET['id'] определена. Для этого можно использовать функцию isset(). Например, можно добавить следующий код перед строкой $variable = $_GET['id']:
if (!isset($_GET['id'])) {
die('ID не определен');
}
Проверить, что сессия корректно инициализирована. Для этого можно использовать функцию session_start(). Например, можно добавить следующий код в начало скрипта:
session_start();
Проверить, что директория для хранения сессий доступна для записи. Для этого можно использовать функцию session_save_path(). Например, можно добавить следующий код перед вызовом функции session_start():
if (!is_writable(session_save_path())) {
die('Директория для хранения сессий не доступна для записи');
}
Проверить, что переменная $variable сохраняет значение $_GET['id']. Для этого можно добавить следующий код после строки $variable = $_GET['id']:
echo $variable;
Если после выполнения этих шагов проблема не решена, то возможно, проблема связана с другим участком кода. Необходимо провести дополнительный анализ кода и логов для выявления причины проблемы.
Дополнительный ответ по дополнительному вопросу:
Проблема в том, что $variable не сохраняет $_GET['id'] в предоставленном коде. Неясно, какое сообщение об ошибке или поведение возникает при попытке использовать $variable в форме. Однако, судя по предоставленному коду, кажется, что $variable устанавливается только в том случае, если $_POST['submit-content-message'] не установлен. Это означает, что $variable устанавливается только при первой загрузке страницы с помощью $_GET['id'], но не при отправке формы. Чтобы это исправить, переменную $variable необходимо установить вне оператора if, чтобы она всегда устанавливалась независимо от того, отправлена ли форма или нет. Вот обновленный код:
require "db_connect.php";
session_start();
$variable = $_GET['id'];
if (isset($_POST['submit-content-message'])) {
$u_id = $_SESSION['user']['user_id'];
$form_content_message = $_POST['content-mesage-input'];
mysqli_query($db, "INSERT INTO `message_content` (`u_id`, `re_id`, `content`) VALUES ('{$u_id}', '{$variable}', '{$form_content_message}') ");
header("Location: message.php?id=".$variable);
}
?>
Благодаря этому изменению $variable всегда будет иметь значение $_GET['id'] и ее можно будет использовать в форме.
session_start();
$variable = $_GET['id'];
if (isset($_POST['submit-content-message'])) {
$u_id = $_SESSION['user']['user_id'];
$form_content_message = $_POST['content-mesage-input'];
mysqli_query($db, "INSERT INTO `message_content` (`u_id`, `re_id`, `content`) VALUES ('{$u_id}', '{$variable}', '{$form_content_message}') ");
header("Location: message.php?id=".$variable);
}else{
};
?>
url выглядит как http://message.com/message.php?id=2
проблема в том что $variable не сохраняет в себе $_GET['id]', подскажите пожалуйста что делать и как это исправить