Esp8266 get запрос к сайту меняется session_id

Александр999
Offline
Зарегистрирован: 13.01.2021

Здравствуйте, сделал простенький веб сервер дома на базе debian, и подключаюсь к нему с модуля esp8266 каждые 3 секунды, получить и принять несколько переменных, все бы ничего, но замусоривается папка с сессиями и сервер перестает работать (там есть ограничение на количество файлов в папке) начал проверять и увидел что каждый запрос присваивается новый session_id, думал проблема на сервере, но при входе через браузер с компьютера такой проблемы нет, может кто-нибудь помочь в данном вопросе?

Код самой отсылки вот такой:

static String myserver = "192.168.0.4";
static String url = "/send";//С разными параметрами ?data=5&t=6 и т.д.
void SendData()
  {
    WiFiClient client;
    HTTPClient http;
    http.begin(client, String(myserver) + String(url));
    
    int httpCode = http.GET(); 
    if (httpCode > 0) 
      { 
        String payload = http.getString();
        Serial.println(payload);
      } 
    else 
      {
        Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
      }  
    
  }

 

rkit
Offline
Зарегистрирован: 23.11.2016

Проблема в сервере. Он не должен выдавать сессию, если она не нужна для работы.

Александр999
Offline
Зарегистрирован: 13.01.2021

Так если я захожу с браузера, потом закрываю и опять захожу по этому же адресу (на который идет отправка), то сессия одна и та же.

Сейчас попробую посмотреть php.ini, может там что-то есть, но как бы любой клиент приходящий на сайт получает индентификатор сессии, а меняется он почему-то когда заходишь с модуля

Александр999
Offline
Зарегистрирован: 13.01.2021

Все же мне кажется это или из-за кода или из-за модуля, на сервере все стандартно как у всех

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5

 

Александр999
Offline
Зарегистрирован: 13.01.2021

попробую еще про php почитать, вдруг и правда что-то там, про модуль таких вопросов ни у кого не нашел

rkit
Offline
Зарегистрирован: 23.11.2016

Я не ясно написал, что ли? Попробуй ещё раз прочитать.
Сервер. Не. Должен. Выдавать. Сессию. Если. Она. Не. Нужна. Для. Работы.

b707
Offline
Зарегистрирован: 26.05.2017

попробуйте сменить ключ

ession.save_handler = files

с files на значение MM или  Memcache

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

client.stop();

b707
Offline
Зарегистрирован: 26.05.2017

Александр999 пишет:

про модуль таких вопросов ни у кого не нашел

а я почему-то в гугле вижу тучу вопросов про то, как чистить старые сессии, иначе забивается  диск

Александр999
Offline
Зарегистрирован: 13.01.2021

rkit пишет:
Я не ясно написал, что ли? Попробуй ещё раз прочитать. Сервер. Не. Должен. Выдавать. Сессию. Если. Она. Не. Нужна. Для. Работы.

А если на странице идет авторизация, разве сессия не требуется? у меня идет, проблема скорее всего в том что при отправке каждого запроса клиент заново авторизуется.

 

Александр999
Offline
Зарегистрирован: 13.01.2021

b707 пишет:

Александр999 пишет:

про модуль таких вопросов ни у кого не нашел

а я почему-то в гугле вижу тучу вопросов про то, как чистить старые сессии, иначе забивается  диск

Это я знаю как делается на сервере, просто интервал чистки не должен быть маленьким, но 28800 сессий от одного клиента, это тоже не хорошо. На линуксе предел папки около 1,5млн файлов потом сервак даже авторизовать не хочет

b707
Offline
Зарегистрирован: 26.05.2017

Александр999 пишет:

Это я знаю как делается на сервере, просто интервал чистки не должен быть маленьким

В инете рекомендуют раз в час. А если надо - да хоть раз в минуту. За сколько ваши 280 тыс сессий накапливаются?

Александр999
Offline
Зарегистрирован: 13.01.2021

все решил я вопрос на сервере

Александр999
Offline
Зарегистрирован: 13.01.2021

session_destroy(); в коде страницы

Александр999
Offline
Зарегистрирован: 13.01.2021

и она просто удаляется

Александр999
Offline
Зарегистрирован: 13.01.2021

Спасибо всем, за участие, все же натолкнули меня на сервере глядеть.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Александр999 пишет:

session_destroy(); в коде страницы

Так?

// Закрываем сессию
session_destroy();
?>

Александр999
Offline
Зарегистрирован: 13.01.2021

да, у меня там было просто die();

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Александр999 пишет:

да, у меня там было просто die();

и где эти файлы сессий болтаются? глянуть хочется, может у меня они тоже имеются )))

Александр999
Offline
Зарегистрирован: 13.01.2021

у меня дело в том что стоит панель Vesta cp и они лежат /home/admin/tmp

она когда ставится меняет стандартное место, но думаю в конфиге php.ini указано место