Это мой код:PHP Session переменных Не Передача с заголовком и ob_start Функцией
<?php
ob_start();
session_start();
include("index.php");
if (isset($_POST['user'],$_POST['pass'])):
$con=mysqli_connect("connect info");
if (!$con){
die('Could not connect to Database: '.mysqli_error());}
$pass=($_POST['pass']);
$query0 = "SELECT * FROM user WHERE username = '" . $_POST['user'] ."' AND password = '" . $pass . "'";
$resource0 = mysqli_query($con,$query0);
if(!$resource0):
die("Error conducting query. ".mysqli_error($con));
endif;
if(mysqli_num_rows($resource0) == 0){
echo "Username not find";
header("Location: /login.php");}
$result0 = mysqli_fetch_row($resource0);
$_SESSION['ID'] = $result0[0];
$_SESSION['userType'] = $result0[3];
if(!isset($_SESSION['ID'])):
//header("Location: ...");
else:
header("Location: ....");
endif;
else:
if(isset($_POST['from'])):
$_SESSION['from'] = $_POST['from'];
endif;
?>
<?php endif; ?>
Этот код берет имя пользователя и пароль и хранит пользователь и поиск в базе данных для идента. Один раз находит информацию, которую он хранит в переменной сеанса 'ID'.
ПРОБЛЕМА: Когда переменная «ID» сессии передается на следующую страницу, она не установлена. Удивительно, но этот код без функции ob_start работал вчера утром, но днем не работал. Я знаю, что это не настройка, потому что две вещи: Когда я эхо на следующей странице, ничего не появляется, и поскольку когда я пытаюсь запустить запрос с переменной «ID» сессии, я получаю ошибку mysql, говоря, что запрос не может быть выполнен.
Это код на следующей странице, которая не работает. Сначала я подумал, что может быть что-то не так с моим запросом, потому что я получал эту ошибку:
«Ошибка при выполнении запроса. У вас возникла ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии сервера MySQL для правильный синтаксис для использования рядом с '' в строке 1 "
Но когда я попытался напечатать переменную« ID »сессии, ничего не печатается.
<?php session_start;
// Create connection
$con=mysqli_connect(connect info....);
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query0 = "SELECT * FROM studentProfile WHERE sID = ".$_SESSION['ID'];
$resource0 = mysqli_query($con,$query0);
if(!$resource0):
echo $_SESSION['ID'];
die("Error conducting query. ".mysqli_error($con));
endif;
.......(rest of code)
Solutions уже пытались: Я пытался их всех ... session_write_close(), session_regenerate_id (истина), session_commit(), ob_end_flush(). Я сначала попытался установить переменную сеанса на домашней странице, но как только функции выполняются в переменной «ID» сессии, больше не устанавливается.
Пожалуйста, помогите! Я прочитал все форумы, которые я смог найти по этой проблеме, но ничего не работает.
Я обновил вопрос с информацией. Я также попробовал код, который вы предложили. Я добавил его на страницу профиля. Однако, поскольку идентификатор сеанса не задан на индексной странице, я просто перенаправляюсь обратно на страницу индекса. – user2510805