За последние 24 часа нас посетили 16104 программиста и 1666 роботов. Сейчас ищет 871 программист ...

Проблема с сессиями

Тема в разделе "PHP для новичков", создана пользователем r67wru, 16 апр 2018.

  1. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Если файл не пустой на сервере - значит и сессия не пустая. Просто ее надо стартануть ДО первого к ней обращения.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
  3. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    если сессию стартую ранее то сессия не пишиться
     
  4. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @r67wru, все шаги надо выполнять последовательно, чтобы устранить ошибку. Сначала дописать session_start() там где ее нет и проверить работу. А только потом удалять там где она была. И думать, в каком месте скрипта стоит стартовать сессию, чтобы не было нотисов.
    Есть вот такая конструкция:
    PHP:
    1. if (session_id() == "")  session_start();
    чтобы в логах не сыпались ошибки при многократных попытках стартовать сессию
     
  5. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    уже все перепробовал...
     
  6. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Пробовали такой вариант:
    PHP:
    1. var_dump($_SESSION['shop']);
    2. print_r($_SESSION);
    какой результат?
     
  7. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    а в cart.php сессии нет
     
  8. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Вы этот вариант пробовали?
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @r67wru, стоит почитать статью которую дал @Maputo, вникнуть потом пересмотреть свой код, и должно получиться.

    Думаю на все это максимум потратите минут 30. А если дальше продолжать в том же духе, дело затянется).
     
  10. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    просто есть подозрение что сессия пропадает после закрытие модального окна
     
  11. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    попробуй не использовать модальное окно
     
  12. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Куда пропадает? Сессия по умолчанию это файл на сервере. Все что тебя связывает с этим файлом это запись в куках. Когда ты стартуешь сессию тебе в куки записывают sessid но что б это произошло стартовать сессию ты должен до вывода любого текста так как кука передается в заголовке. Когда ты повторно делаешь запрос на сервер он приходит уже с кукой и когда ты стартуешь сессию по этой куке ищется твой файл. Что здесь сложного?
     
  13. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @r67wru, вывод ошибок включен?
    --- Добавлено ---
    Покажи содержимое session_tovar.php
     
  14. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    PHP:
    1. <?php
    2. $_SESSION['shop'][$_POST['tovar_id']] = $_POST['tovar_kolvo'];
    3. ?>
     
  15. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    здесь записывается сессия, как я понял с этим проблем нету, а можно файл, где вы пытаетесь проучить сессионные данные?
     
  16. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    https://php.ru/forum/threads/problema-s-sessijami.70274/#post-566704 в споллере файл cart.php
     
  17. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Так вот, пропишите в этом файле на самом верху session_start();
    Я понимаю там вы писали, что она стартуется в session_tovar, но все же пропишите в cart.php
    --- Добавлено ---
    И еще, не ответили на вопрос, вывод ошибок включен?
     
  18. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    это уже делалось. тогда создается пустая сессия
     
  19. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    всё дело в модальном окне bootstrap. Надо его убрать и всё заработает
     
    Maputo нравится это.
  20. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Ты каждый раз удаляешь файлы? Или чистишь куки? Не может она быть пустой. Может она просто не твоя? Что у тебя в куках? Ты создал сессию. Она пустая. Ты добавляешь товар в корзину перезагружаешь страницу и тебе показывают результат
     
  21. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    session_tovar.php - там создается сессия (вывод его в модальном окне) (сессия записалась) после перенаправления на страницу карт сессия пустая
     
  22. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Сложно с тобой:) Я вообще не понимаю что такое вывод в модальном окне. Модальное окно это скрытый кусок html кода который появляется при наступлении какого то события. Это не начало файла. Не можешь ты стартовать сессию где захочешь. Только в самом начале.
    PHP:
    1. ini_set('display_errors', 1);
     
  23. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    @r67wru Давай попробуем копнуть глубже что означает твоё "сессии нет". Сессия живет за счёт сессионной куки. Обычно эта кука имеет имя PHPSESSID. Поищи её в Web Developer своего браузера.

    [​IMG]
    --- Добавлено ---
    Имя PHPSESSID, а значение должно быть одно и то же при переходе со страницы на страницу в пределах твоего сайта.
    Это необходимое условие. Проверь как у тебя там дела с кукой.
     
  24. r67wru

    r67wru Активный пользователь

    С нами с:
    14 июл 2017
    Сообщения:
    36
    Симпатии:
    2
    при создание сессии файл пишется. а при переходе на страницу cart.php получается стартует другая сессия и пустая
     
  25. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    @r67wru Ты можешь сделать буквально то, о чём я тебя попросил? Есть такое чувство, что я трачу время на безнадегу.
    --- Добавлено ---
    Выясни что происходит с сессионной кукой. Есть ли она? Если есть, то сохраняет ли она значение при переходах?