Почему не видит сессию?

есть личная страница которая генерируется согласно ID сессии пользователя.

session_start();

error_reporting(E_ALL & ~E_NOTICE); //Убираем Notice, а все остальные ошибки выводим

require_once 'connection.php';

$dbh = new PDO('mysql:host=localhost; dbname=projectboard', $user, $pass);

$id = $_SESSION['id'];

$stmt = $dbh->prepare('SELECT name, lastname FROM users WHERE id = :id');
$stmt->bindParam(':id', $id);
$stmt->execute();

while($result = $stmt->fetch(PDO::FETCH_OBJ)){
  $_SESSION['name'] = $result->name;
  $_SESSION['lastname'] = $result->lastname;
        
  echo $_SESSION['name'].' '.$_SESSION['lastname'];
}

Но когда пытаюсь сделать так, чтобы пользователь смог зайти на страницу другого пользователя

$officeID = $_GET['id'];
  if($officeID == $_SESSION['id']){
    while($result = $stmt->fetch(PDO::FETCH_OBJ)){
      $_SESSION['name'] = $result->name;
      $_SESSION['lastname'] = $result->lastname;
      echo $_SESSION['name'].' '.$_SESSION['lastname'];
     }
  }else{
    $stmt = $dbh->prepare('SELECT name, lastname FROM users WHERE id = :id');
    $stmt->bindParam(':id', $officeID);
    $stmt->execute();    
    while($result = $stmt->fetch(PDO::FETCH_OBJ)){
      $_SESSION['name'] = $result->name;
      $_SESSION['lastname'] = $result->lastname;
      echo $_SESSION['name'].' '.$_SESSION['lastname'];
    }
  }

Всё хорошо работает, но как делаю запись в форме на странице, и отправляю её

<section>
<form action="office.php" method="post" class=".form"> <!--Action принимает файл, который обрабатывает поле формы ID и Class не работают-->
  <input name="headline" type="text" placeholder="Дайте название Вашему проекту" required>
  <textarea name="projectDescription" rows="10" wrap="soft" class="About" placeholder="Опишите Ваш проект" required></textarea>
  <section class="comAndOffer">
    <input name="communication" type="text" class="Communication" placeholder="Укажите как связаться с Вами" required>
    <input name="offer" type="number" min="1" max="50" class="Offer" placeholder="%" required>
  </section>
  <input name="submit" type="submit" class="Button" placeholder="Опубликовать" required>
  <button onclick="document.location='projects.php'">Другие проекты</button>
</form>

<?php
   //Форма проекта
    if (!empty($_POST)){
        if ( !isset($_POST['headline']) || !isset($_POST['projectDescription']) || !isset($_POST['communication']) || !isset($_POST['offer'])) {
            echo 'Заполните все поля';
            die;
        }            

        $headline = htmlspecialchars($_POST['headline']);
        $projectDescription = htmlspecialchars($_POST['projectDescription']);
        $communication = htmlspecialchars($_POST['communication']);
        $offer = ($_POST['offer']);

        $headline_t = trim($headline);
        $projectDescription_t = trim($projectDescription);
                
        $stmt = $dbh->prepare("INSERT INTO projects (headline, projectDescription, communication, userID, offer) 
                VALUES (:headline, :projectDescription, :communication, :userID, :offer)");
        $stmt->bindParam(':headline', $headline_t);
        $stmt->bindParam(':projectDescription', $projectDescription_t);
        $stmt->bindParam(':communication', $communication);
        $stmt->bindParam(':userID', $id);
        $stmt->bindParam(':offer', $offer);

        $stmt->execute();
    }
?>

После отправки происходит перезагрузка страницы, где ничего не выводится, только шаблон страницы с пустыми полями, будто никакой сессии не существует.

Подскажите, где я напортачил? Так как код с проверкой пользователя на совпадение ID сессии и странички взят из головы.


Ответы (0 шт):