За последние 24 часа нас посетил 15591 программист и 1550 роботов. Сейчас ищут 876 программистов ...

Нужна помощь по SaaS

Тема в разделе "Прочие вопросы по PHP", создана пользователем roxoman, 11 дек 2014.

  1. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    Смысл таков:
    Есть сайт для сдачи в аренду интернет-магазина. На главной странице можно зарегистрировать тестовый период на 15 дней. Тестовый магазин появляется по ссылке http://сайт_сдачи_в_аренду.рф/название_тестового_магазина. Тут проблем нет, все прекрасно работает. После окончания тестового периода пользователю предлагается перейти на платную версию на своем домене. Естественно будут выпускаться обновления, а обновлять потом у сотни клиентов каждый набор скриптов - бред. Самое лучшее, что пришло мне в голову - сделать клиентский сайт одним файлом, который просто будет скачивать страницу с того же тестового сайта, которым клиент пользовался в начале, то есть при запросе http://сайт_клиента.рф/корзина будет показана страница http://сайт_сдачи_в_аренду.рф/тестовый_магазин_клиента/корзина. А AJAX-запросы сделать кроссдоменными к http://сайт_сдачи_в_аренду.рф. Это полностью решит вопрос расширяемости, так как клиентский скрипт никогда не будет меняться, там будет простейший роутер, подгружающий нужную страницу.
    Собственно вопрос: с помощью чего это лучше всего сделать? Я предполагаю использовать cURL, хотя еще ни разу с ним не работал. По идее проблем возникнуть не должно, кроме одной: что делать с COOKIES? Как они будут проставляться на сайте клиента, и как сервер будет их получать?
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Одна копия магазина и базы данных, идентификация по домену и загрузка нужных настроек, данных, зачем делать 100500 копий одних и тех же скриптов.
     
  3. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    Я об этом и говорю. Вопрос в том, если это делать через cURL, то как будут работать COOKIES?
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    saas значит что софт работает на нашем сервере а клиент настраивает днс своего сайта на наши адреса. по запросу его сайта посетитель направляется к нашим серверам, наши сервера определяют с каким клиентом нужно работать и подрубает нужные данные.
    пример saas - livejournal. можно иметь блог example.livejournal.com а можно перенаправлять example.com на livejournal.com - козёл покажет правильный блог.
     
  5. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    При чём тут cURL и cookie?
    Ну cookie могу догадаться можно по ситуации на под папку устанавливать или на домен клиента.

    Вот возьмём магазин:
    Домен или подпапка
    Шаблоны
    Информация (товары, пользователи, заказы)

    Есть одна копия скрипта, его логика такова: при запуске он определяет на каком домене загрузили его, идёт в базу или файл настроек по имени домена и находит идентификатор, получает по нему данные, какой шаблон, какие товары показывать, чтобы выводить только конкретно товары магазина example.com, а вот когда кто-то зайдёт на example.org то скрипт уже загрузит товары только те которые принадлежат example.org
     
  6. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    Это я и так понимаю. Я задал вопрос - как это лучше реализовать? Я предположил просто скачивать страницу средствами cURL (да в принципе хоть какими, хоть file_get_contents). Да, страница отобразится, да, js подгрузится с http://сайт_сдачи_в_аренду.рф/тестовый_магазин_клиента/, да, кросдоменные запросы на AJAX будут работать. НО! Как будет работать корзина? Как будет работать автоматический вход? Как будут работать куки? Например в корзину я добавляю товар на сайте http://сайт_клиента.рф/, js записывает в куку с товарами добавляемый товар, но эта кука ведь находится на http://сайт_клиента.рф/! А потом мне нужно отправить заказ, произвожу AJAX-запрос на http://сайт_сдачи_в_аренду.рф/ с "просьбой": сервер, оформь заказ. А сервер отвечает: "У Вас в корзине нет товаров!". Естесственно, потому что сервер берет куки с http://сайт_сдачи_в_аренду.рф/, а товар добавлен в куки http://сайт_клиента.рф/! Вот в чем вопрос-то!

    Добавлено спустя 3 минуты 2 секунды:
    cURL не причем. Я просто спросил - с помощью чего это реализовать? Предположил cURL. А по поводу кук - другой вопрос, я отписал выше по поводу него.
     
  7. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Всё делаешь как обычно в интернет магазине, только настройки и другие данные грузишь для домена с которого запросили страницу.
    Посмотри как wordpress работает например http://codex.wordpress.org/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D ... 1%82%D0%B8
     
  8. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    Там написано про сайты на поддоменах и в подкаталогах. У меня и так уже все работает: тестовый сайт размещен в подкаталоге. Это работает прекрасно, какие тут могут быть проблемы. Но, я спрашиваю третий раз: как будут работать куки, когда сайт будет располагаться не в подкаталоге, а на отдельном домене? Я же не могу их проставить на домен, с которого грузятся данные, с домена, на котором сидит клиент?

    Добавлено спустя 3 минуты 50 секунд:
    Единственный вариант вижу - брать все куки и отправлять их вместе с запросом с домена клиента к "домену-обработчику". Только как это сделать?
     
  9. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Как работает DNS и что делает web сервер есть понимание?

    Если да, то DNS будет ссылаться на твой web сервер и запускать твой скрипт, и ты сможешь ставить cookie как обычно
     
  10. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    Есть конечно, у нас недопонимание, по-моему) Для ускорения работы у меня COOKIE проставляет JAVASCRIPT, чтоб не делать лишних запросов к серверу!!! То есть, когда я кладу товар в корзину - это делает не сервер, а яваскрипт-файл, который соответственно устанавливает куку домену, с которого идет обращение. Вот в чем дело, я и думаю теперь - есть какой-то вариант их передать на "домен-обработчик" или проще сделать, чтоб товар клал в корзину сервер, соответственно куки проставятся на "домен-обработчик".
     
  11. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    круто. магазин для сдачи в аренду есть а понимания работы протокола гипертекста и смежных технологий - нет...
     
  12. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Так магазин у тебя в виде виджета? Например как на http://www.ecwid.ru/demo
    Если не так, то JS ставит и читает куки с того домена на котором он запущен, и проблем не должно быть.
     
  13. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    У меня в свое время был магазин автозапчастей, для которого я писал интернет-магазин с нуля с кучей функций, которые просто необходимы именно магазину автозапчастей (загрузка многомиллионных прайс-листов, ценообразование, VIN-запросы, каталоги по VIN-коду, поиск по номеру запчасти с выдачей аналогов и т. п.). Потом с самим магазином я решил завязать, так как надо было либо вкладывать много средств, либо сидеть дальше на относительно низкой прибыли. А сайт-то остался. Я вспомнил, что были такие платформы как http://abcp.ru/ и http://zaptrade.ru/. Полазил, посмотрел функционал их платформ и понял, что я в свое время все это уже сделал (ну не хотелось мне платить по 10000 ежемесячно за их услуги). Я может и не профессиональный программист (иначе не обращался бы сюда), скорее любитель со стажем, не работал никогда программистом и не создавал коммерческих проектов, поэтому и не знаю многих нюансов, но человек предприимчивый, не люблю искать работу, люблю ее создавать. Вот я и решил, что 90% работы уже сделано в свое время, зачем это выкидывать на помойку, когда можно попытаться это развить (не надо только сейчас говорить, что я не справлюсь с этими конкурентами, это уже отдельная тема). Я сделал сайт-презентацию, который будет это дело как бы продавать, на нем можно создать тестовый магазин, который будет располагаться в подкаталоге этого сайта-презентации, он абсолютно полнофункциональный, с панелью администратора, личным кабинетом покупателя, через него в принципе можно вести торговлю. А платная версия будет отличаться только тем, что будет не в подкаталоге, а на домене клиента. Вот я и хочу, чтоб платная версия обращалась к тестовой, брала все подчистую оттуда, разница только в том, что домен будет клиентский, а не мой подкаталожный. У меня все готово, кроме того, как будет организована платная версия. Я сюда и обратился за тем, чтобы мне объяснили, как это реализовать.

    http://zaptrade.ru/ - у меня по сути копия.
     
  14. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну отлично. я задачу понял. рвань какое правильное решение описано в моем первом ответе. сделать сервис у себя и сделать его не привязанным к хосту. то есть вебсервер принимает на айпишник (да, нужен будет айпишник) запрос и отправляет его движку. как мы знаем в хттп есть загловок ХОСТ. вот по нему мы и поймем от имени какого хоста к нам пришел запрос. если это наша презентация - показываем ее. если это клиент - показываем его магазин. если клиент торчит нам бабулес - показываем заглушку мол если вы знаете этого парня передайте ему привет. пойдет такой подход?
     
  15. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    Я хочу сделать так:
    У клиента есть тестовый сайт: http://головной_сайт.рф/тестовый_сайт. Он решил перейти на платную версию. Тестовый сайт при этом не удаляется, он и становится этой платной версией, просто он теперь отключится не через 15 дней, а в том случае, если клиент не принес вовремя чемодан денег. Я создаю ему хост, он прописывает настройки в своем домене, на созданный хост я заливаю файл, который будет обращаться к его тестовому сайту (в этом файле простой роутер, который разбивает урл и скачивает страницу с тестового сайта, например: клиент заходит на http://домен_клиента.рф/search?query=06E906036F&brand=VAG, роутер с хоста клиента определяет, что нужно скачать страницу http://головной_сайт.рф/домен_клиента/search?query=06E906036F&brand=VAG, ajax-запросы делаются аналогично, вот и вся логика). Собственно, вопрос был посредством чего скачивать страницу, и как будут вести себя куки. С куками я все понял. А как скачивать страницу вопрос открыт. Это должен быть cURL или можно простым file_get_contents?
     
  16. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    что-то муть какая.
    есть головной сайт. пришел клиент. создал триальчик вида "голова.ру/васька". потестил. рад. купил домен "васька.ру". проплатил сервис. завязал днс. просто тупо отвечать на запросы к "васька.ру" той базой которая была в треале "голова.ру/васька". усё. и никаких контентов не придется гонять. вася хорошо знает верстку? разрешаем ему залить свой шаблончик чтоб наш сервис на казалось бы общие данные натягивал васькин шаблон. и все рады всё ещё.

    зачем велосипедить описанным выше образом?
     
  17. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    Ааа, понял, да, так действительно проще, спасибо) Тогда еще вопрос немного оффтоп, просто чтоб тем лишних не создавать. Подойдет ли какой-нибудь хостинг для старта подобной вещи, чтоб сразу не тратиться на аренду сервера?
     
  18. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    хостинг? надо смотреть на загруженность сайта - массхостинг может попросить за пользование слишком большим процессорным временем. и второе - не каждый хостинг согласится вайлдкарты прописывать. так что скорее всего аренда.
     
  19. roxoman

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

    С нами с:
    11 дек 2014
    Сообщения:
    21
    Симпатии:
    1
    Понял, спасибо за помощь. Тему можно закрыть.