Задать вопрос
@ukod

Почему удаляются cookies после повторного входа на страницу?

Отправляю куки и инициирую сессию.
<?php
session_start();
if(!isset($user)){
$s = file_get_contents('http://ulogin.ru/token.php?token=' . $_POST['token'] . '&host=' . $_SERVER['HTTP_HOST']);
$user = json_decode($s, true);
}
if(isset($user)){
    $first_name = $user['first_name'];
    $last_name = $user['last_name'];
    $network = $user['network'];
    $identity = $user['identity'];
    $page_adress = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    $_SESSION['user']=$user;
    $_SESSION['page_adress'] = $page_adress;
    $life_time = time()+(60 * 60 * 24 * 7);
    $access_path = "/";
    $access_domain = "domain.com";
    setcookie('first_name', $first_name, $life_time, $access_path, $access_domain);
    setcookie('last_name', $last_name, $life_time, $access_path, $access_domain);
    setcookie('network', $network, $life_time, $access_path, $access_domain);
    setcookie('identity', $identity, $life_time, $access_path, $access_domain);
    setcookie('page_adress', $page_adress, $life_time, $access_path, $access_domain);
}
?>

После этого, в другом сценарии первоочередно принимаются куки. Если куки не записались, или пользователь их удалил, то пытаюсь извлечь инфу из сессии.
$boolCheckCookie = false;
     $pageAdressCheck = false;
     if(isset($_COOKIE['first_name'])){ 
          $username['first_name'] = $_COOKIE['first_name']; 
          $username['last_name'] = $_COOKIE['last_name'];
          $username['network'] = $_COOKIE['network'];
          $username['identity'] = $_COOKIE['identity'];
          $page_adress = $_COOKIE['page_adress'];
          $boolCheckCookie = true;
          echo "Отработали куки <br>";
     }
     else{
          if($boolCheckCookie == false){
               session_start();
               if(isset($_SESSION['user'], $_SESSION['page_adress'])){
               $username = $_SESSION['user'];
               $page_adress = $_SESSION['page_adress'];
               echo "Отработала сессия <br>";
               }
          }
     }

Проблема в следующем: после того как я вновь запускаю первый сценарий, то куки из браузера удаляются, а сессия передает пустые поля. Подскажите, что не так?
  • Вопрос задан
  • 2507 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@slavabars
Веб программист
У тебя при каждом вызове верхнего кода куки переопределяются.

if(!isset($user)) всегда возвращает True в твоём случае.

Так же надеюсь имя домена в коде ты меняешь на своё. И если используешь поддомен или www,то перед доменом ставишь точку.
Ответ написан
Комментировать
benbor
@benbor
Помог ответ - не забудь лайкнуть
Пробовали для всех файлов в самом начале включать session_start()? Быть может ПХП забывает установить куки во втором файле, если session_start не отрабатывает
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы