Это, как у мейл ру функция. Запрет паралельных сессиях. Если она включена в настройках, то нельзя зайти на сайт с другого аккаунта. Если уже пользователь зашел в кабинет, то с другого браузера зайти нельзя.
Вообще мне нужно сделать проверку на параллельные сессии. Первую часть сделал и когда пользователь вышел с сайта через кнопку "Выход" и настройках стоит проверка на запрет паралельных сессий, то работает все нормально, но есть "Но". Если пользователь просто закрыл браузер или сессия для него разрушилась, то он уже не сможет зайти на сайт. У меня в голове 2 вариант решения. В готовой таблице онлайн хранить инфу о зарегененых пользователях и перед их удалением делать выборку кому нужно обновить статус, что он вышел сайта. Второй вариант - обновлять статус, что пользователь онлайн через аякс при postMessage, но тогда при закрытии вкладки будет сделан автоматический выход, что не есть не очень хорошо. Оба метода решения костыльные, но ничего толкого в голову не пришло.
У меня проверка, что пользователь удачно залогинился стоит через сессию. Как мы знаем, что при закрытии браузера сессия для данного пользователя уже не будет действовать при новом открытии браузера. Как мне узнать, что пользователь закрыл браузер через сессию?
Есть вариант записывать значение сессии в БД и если пользователь хочет зайти заного, то уже проверять по куки сессию и если они не равны обновлять значения в БД что пользователь удачно зашел на сайт.
Пытаюсь преобразовать массив в json строку. В результат везде null. Если в значение елемента поставить текст на английском, то все нормально будет. в htacces стоит UTF-8.
Результат
Когда я передаю данные в шифрованном виде к серверному обработчику с ключом "info", то он все спокойное расшифровывает и скрипт работает как нужно. Когда другой человек передает с таким же ключом, то данные расшифровываются не правильно и из-за этого запись в БД происходнит с пустыми данными. Если я ставлю другой ключ, то мои данные расшифровываются не правильно, а другого человека нормально. Думал, что проблема в кодировках между клиентом и сервером. Использование iconv, смена в htaccess кодировки тоже не помогла. Если зашифровать инфу на клиенте или сервере и тут же её расшифровать то все работает нормально. Может у кого-то есть мысли по этому поводу как это исправить?
Функция шифрования/расшифрования на сервере
ну и зачем весь этот набор вообще передавать?
передай идентификатор юзера и всё
а данные возьми в базе
А новые данные откуда брать? Все данные берутся из скрипта.
Zuldek пишет:
Сам подход имхо утопичен для игр, если речь идёт о риалтайм приложениях. В конечном счете вы усложните жизнь себе и замедлите само приложение при это всёравно всё может быть расшифровано и подделано.
Задача сервера проверять каждый пакет на валидность, а не доверять зашифрованным данным пришедшим под конкретным ключём. Подобным образом устроены античит-проверки всех популярных игровых серверов риалтайм-ммо проектов. При этом пакеты могут проверяться выборочно, а каждый пакет проверяется на валидность и принадлежность конкретному клиенту.
Язык на котором я пишу не поддерживает работу с пакетами.
Zuldek пишет:
Шифрование подразумевает, что зашифрованы данные, и передаётся ключ для расшифровки.
Соответственно зашифруете вы данные, к примеру по одному из алгоритмов mcrypt, в клиентах будет ключ для расшифровки. Если вы будете менять ключ на стороне сервера, вам всёравно придётся этот ключ передать клиенту. Сделать это сложности не составит, но в конечно счете ключ может быть получен при простым анализом трафика.
Мне бы хотелось, чтобы ключ генерировался у клиента, а сервер уже ключ этот распознавал сам. С алгоритмов шифрования на клиенте я могу использовать только XOR.
У меня чуть другие данные. Информация о убийствах, смертях, количество нанесенного урона, имя, ключ и ип адресс сервера. Вот http://killinformer[dot]ru/statistics проекта, чтобы было более понятно, что я хочу передавать.
Если перейти фак или на главную, то там не будет ссылок на ЛК и общую статистику.Они пока в проекте. В статистике база заполнена рандомными данными.