1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Проблема личный кабинет клиент-сервер

Тема в разделе 'PHP', создана пользователем Stas94, 28 янв 2017.

  1. TopicStarter Overlay

    Stas94 Old school Пользователи

    Сообщения:
    111
    Лайки:
    13
    Пол:
    Мужской
    Репутация:
    0
    Всем привет. Сделал ЛК для сервера PW, но предполагалось, что он будет стоять на самом сервере, но ведь если подключать платежную систему, нужен же нормальный сайт, а не просто IPишник. Задумался, как реализовать ЛК, что бы разделить его на клиентскую (на сайте) и серверную часть (на стороне сервера). Почитал про curl, в серверной части оставил только обработчики данных, в клиентской все остальное. Когда я захожу в ЛК, мне присваиваются 3 сессии: логин, ИД акка, хешированный логин + ид с секретным словом. И тут вся проблема... Отправляю я данные форм по curl серверу, он все обрабатывает ОК, но как получить данные в виде переменных обратно??? Не нашел как, просто взял эти сессии и вывел командой echo, на стороне клиента я их разобрал, но самое главное, оказывается, что данные поступающие с curl имеют не строковое значение а числовое... И когда я хочу сделать хешированный логин + ид с секретным словом на стороне клиента из данных с сервера у меня совсем другое значение... Подскажите, пожалуйста как можно реализовать правильно клиент + сервер? Может есть что-то лучше curl для этого? Спасибо.)))
  2. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Harley, Stas94 и NEO нравится это.
  3. TopicStarter Overlay

    Stas94 Old school Пользователи

    Сообщения:
    111
    Лайки:
    13
    Пол:
    Мужской
    Репутация:
    0
    Спасибо. Кстати работать с json пробовал, никакого эффекта не получил... serialize вроде работает ща смотрю, попробую.
  4. TopicStarter Overlay

    Stas94 Old school Пользователи

    Сообщения:
    111
    Лайки:
    13
    Пол:
    Мужской
    Репутация:
    0
    А после того как я получил массив в виде строки при unserialize, есть ли какая-нибудь команда, чтобы собрать её в массив или вытащить данные массива?)))
  5. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    serialize - делает из объекта/класса/массива строку, unserialize - из этой строки возвращает обратно объект/класс/массив, на стороне сервера нужно данные прогонять через serialize, а при получении их в клиенте соотв. делать unserialize
    Stas94 нравится это.
  6. TopicStarter Overlay

    Stas94 Old school Пользователи

    Сообщения:
    111
    Лайки:
    13
    Пол:
    Мужской
    Репутация:
    0
    Разобрался, достаем все из кавычек '/"(\S[^"]*?\S)"/i'. alexdnepro хотел бы еще уточнить. Получается нужно на стороне клиента сделать всю обработку информации, а серверу отправить уже готовую к работе, ну и естественно проверить, не была ли она изменена?)
  7. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Да, не совсем понимаю, о какой проверке идет речь, главное строить систему связи так, чтобы сервер принимал запросы только от клиент части, и так, чтобы используя клиент часть, адрес сервер части нигде не светился, как минимум.
    Stas94 нравится это.
  8. TopicStarter Overlay

    Stas94 Old school Пользователи

    Сообщения:
    111
    Лайки:
    13
    Пол:
    Мужской
    Репутация:
    0
    Например проверить логин, пароль на корректность, и потом в md5 пароль отослать, это под обработкой подразумеваю. Я хочу сделать, что вместе с параметрами отправляю по curl хешированные эти же параметры с секретным ключом, сервер их разбирает, также хеширует параметры с тем же ключом. Потом сравнивает хеш от клиента и хеш, который сам сделал, если все совпадает, значит запрос подлинный.
  9. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Это конечно можно, но как по мне, достаточно сделать ограничение по айпи, чтобы доступ к сервер части был только с айпи клиент части. Или уж сделать асинхронное шифрование по публичному и приватному ключам.
    Stas94 нравится это.
  10. TopicStarter Overlay

    Stas94 Old school Пользователи

    Сообщения:
    111
    Лайки:
    13
    Пол:
    Мужской
    Репутация:
    0
    Спасибо, теперь работает))) Кстати еще вопрос. Если все хорошо, мне поступает информация для обработки, а если допустим был не верный логин или пароль, как мне этот момент отследить? А то получается что фраза "Введены не верные логин или пароль!" загоняется в массив для обработки. Мб просто сделать сравнение? Если такая то фраза выводить её, если другая то её, а если ни то ни то, значит, то что нам нужно и дальше обрабатывать?
    {J}oKe{R} нравится это.
  11. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    В идеале, сервер не должен выдавать никаких фраз, все они должны быть в клиенте (хотя сам я в ЛК не везде придерживался этого правила, а сейчас вот прийдется переделывать). Сервер может возвращать код ошибки, которую клиент уже выведет в виде сообщения. Т.е. делай систему обмена данными между клиент и сервером только с данными/параметрами и кодами ошибок или любыми другими.
    Stas94 нравится это.
  12. TopicStarter Overlay

    Stas94 Old school Пользователи

    Сообщения:
    111
    Лайки:
    13
    Пол:
    Мужской
    Репутация:
    0
    Т.е. например мне сервер отправил "1111", я на стороне клиента знаю, что это "Введены не верные логин или пароль!". Типа того?)))
  13. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    PHP:
    $answer = array(
            
    'errorcode' => 5,
            
    'errparam1' => 10,
            
    'errparam2' => 20
        
    );
        echo 
    serialize($answer);
    Вот например такой ответ выдаст сервер при запросе авторизации, 5 - код ошибки пусть это будет короткий пароль, 2 параметра для сообщения что пароль должен быть от 10 до 20 символов, тип ошибки клиент по коду должен знать, а для кода ошибки 0 - это успешная авторизация. Пример очень поверхностный, но суть такая.
    Stas94 нравится это.
  14. viking300kg Пользователи

    Сообщения:
    21
    Лайки:
    0
    Репутация:
    0
    я бы использовал сокеты, на сервере поднять сокет сервер, на клиенте, сокет клиент соответственно
Черновик сохранён Черновик удалён
Similar Threads
  1. Neron
    Ответов:
    13
    Просмотров:
    5.737
  2. danooo
    Ответов:
    17
    Просмотров:
    2.755
  3. Kastiel
    Ответов:
    19
    Просмотров:
    4.031
  4. Killer-sin
    Ответов:
    6
    Просмотров:
    2.440
  5. pdw
    Ответов:
    7
    Просмотров:
    3.581
Загрузка...

Поделиться этой страницей