За последние 24 часа нас посетили 53969 программистов и 1718 роботов. Сейчас ищут 1119 программистов ...

Путаница Cookies

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

  1. CrissNamon

    CrissNamon Новичок

    С нами с:
    12 апр 2016
    Сообщения:
    24
    Симпатии:
    0
    Здравствуйте!
    Делаю на сайте авторизацию, запоминаю нужные данные в куки
    PHP:
    1. <?
    2. SetCookie('server',$url,time()+86400,'/path/','domain')
    3. ?>
    У некоторых пользователей возникает проблема: куки как бы путаются, то есть они выдают информацию других пользователей. Такое возможно? Насколько я знаю куки хранятся на стороне клиента.
     
  2. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Пользователи пользуются одним компом?
     
  3. CrissNamon

    CrissNamon Новичок

    С нами с:
    12 апр 2016
    Сообщения:
    24
    Симпатии:
    0
    Конечно нет. Все с разных городов, браузеров, устройств
     
  4. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    А что хранится в переменной $url?
     
  5. CrissNamon

    CrissNamon Новичок

    С нами с:
    12 апр 2016
    Сообщения:
    24
    Симпатии:
    0
    Адрес API, которое используется на сайте
     
  6. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    А в чём путаница? У каждого пользователя свой адрес API?
     
  7. CrissNamon

    CrissNamon Новичок

    С нами с:
    12 апр 2016
    Сообщения:
    24
    Симпатии:
    0
    Всего около 160 адресов. Есть пользователи с одинаковым адресом.
    В куках храню id, токен, время токена и адрес API. Все данные о пользователе получаются от API, которому передаются id, токен, время токена. Проблема в том, что у некоторых пользователей для авторизации используются куки других пользователей
     
  8. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @CrissNamon, именно SetCookie, а не setcookie?
    Гляньте реализацию...
    Ещё можно посмотреть, как формируются токены... нет ли одинаковых для разных id пользователей.
     
  9. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Вопрос в том откуда на компе пользователя взялись куки с данными другого пользователя. Значит изначально вы записали в куки неправильные данные?
     
  10. CrissNamon

    CrissNamon Новичок

    С нами с:
    12 апр 2016
    Сообщения:
    24
    Симпатии:
    0
    а разве есть разница между SetCookie и setcookie? Токены формируются всегда случайные, совпадений быть не может.
    --- Добавлено ---
    данные записываются правильные. Путаница происходит иногда. После 1-2 обновлений страницы все приходит в норму
     
  11. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    потому что, что-то намудрил
     
  12. CrissNamon

    CrissNamon Новичок

    С нами с:
    12 апр 2016
    Сообщения:
    24
    Симпатии:
    0
    Что можно намудрить в куках?
     
  13. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Ну тут три варианта:
    1. Всё-таки записываются неправильные данные.
    2. Сервер отдаёт неправильные данные (совпадение токенов например или что-то в этом роде).
    3. Несколько пользователей пользуются одним компом.
     
  14. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    и в каком месте ???
    где вы тут в куках id храните, или токен?
    либо показывайте содержимое $url если вы все там храните
     
  15. CrissNamon

    CrissNamon Новичок

    С нами с:
    12 апр 2016
    Сообщения:
    24
    Симпатии:
    0
    Я лишь привел пример, как задаю куки. Естественно, что для id, токена и $url создаются разные куки

    PHP:
    1. SetCookie('id',$response->user_id,time()+86400,'/path/','domain')
    2. SetCookie('token',$response->token,time()+86400,'/path/','domain')
    3. SetCookie('expire',$response->expire,time()+86400,'/path/','domain')
     
  16. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    а чего не в одной куке то? и записывать туда через serialize/unsearelize
    ладно... а вы уверены что они из кук получают данные неверные - а не на стадии проверки этих кук трабла?
    покажите код который проверяет эти куки?
     
  17. CrissNamon

    CrissNamon Новичок

    С нами с:
    12 апр 2016
    Сообщения:
    24
    Симпатии:
    0
    Куки не проверяются. При авторизации идет запрос к API, которое отдает нужную информацию, которая записывается в куки.
    Затем эти куки используются для других запросов к тому же API, без каких-либо проверок.
    Грубо говоря, мой сайт лишь посредник между пользователем и сторонним сервером.
    --- Добавлено ---
    На данный момент проблему вроде решил проверкой содержимого куки и информацией, приходящей от API