Подскажите, пожалуйста, решение...Задача такая. Есть windows-программа (написана в Delphi), работающая с базой данных товаров. Необходимо организовать передачу данных (товаров) php-скрипту, который затем должен положить эти данные в базу некоторого электронного магазина, а также пересылку данных обратно, т.е. экспорт и импорт. Усложняется все тем, что:
- данных много, товаров может быть сотни тысяч и передавать их надо быстро, и нужно как-то проверять были ли они успешно переданы и записаны в базу;
- структура базы магазина может быть разной, т.к. могут использоваться разные магазины, и адаптировать под конкретную структуру нужно только какой-то модуль php-скрипта, т.е. данные передевать надо в каком-то универсальном формате.Как устанавливать соединение и как передавать данные?
В каком формате передавать данные и как проверять целостность принятых данных?Каким образом можно организовать синхронизацию обеих баз?
Зачем страдать таким маразмом? Когда можно напрямую работать с базой???
>Зачем страдать таким маразмом? Когда можно напрямую работать с базой???С базой нельзя работать, во-первых потому, что магазин может находиться на каком-то хостинге, где нельзя добраться к базе извне, во-вторых потому, что нужна возможность адаптировать все это дело для новых магазинов без изменения основной программы
>Подскажите, пожалуйста, решение...
>Каким образом можно организовать синхронизацию обеих баз?Работать с базой напрямую. ПХП скрипт будет делать с базой то что ему надо, а программа - то что надо ей...
>>Подскажите, пожалуйста, решение...
>>Каким образом можно организовать синхронизацию обеих баз?
>
>Работать с базой напрямую. ПХП скрипт будет делать с базой то что
>ему надо, а программа - то что надо ей...Это будет утилита для работы с опен сорсовыми магазинами, которые пользователи могут поставить где угодно и сервер мы не контролируем. PHP-скрипт пользователи будут устанавливать как плагин к магазину и это все, что будет доступно.
>>>Подскажите, пожалуйста, решение...
>>>Каким образом можно организовать синхронизацию обеих баз?
>>
>>Работать с базой напрямую. ПХП скрипт будет делать с базой то что
>>ему надо, а программа - то что надо ей...
>
>Это будет утилита для работы с опен сорсовыми магазинами, которые пользователи могут
>поставить где угодно и сервер мы не контролируем.
>PHP-скрипт пользователи будут
>устанавливать как плагин к магазину и это все, что будет доступно.Этот ПХП скрипт - просто будет передавать поток данных из программы в базу данных.
Просто принимать поток команд от программы на делфи и передавать его к базе а потом отдавать назад ответ базы...
>[оверквотинг удален]
>>
>>Это будет утилита для работы с опен сорсовыми магазинами, которые пользователи могут
>>поставить где угодно и сервер мы не контролируем.
>>PHP-скрипт пользователи будут
>>устанавливать как плагин к магазину и это все, что будет доступно.
>
>Этот ПХП скрипт - просто будет передавать поток данных из программы
>в базу данных.
>Просто принимать поток команд от программы на делфи и передавать его к
>базе а потом отдавать назад ответ базы...А каким образом это реализовать? И как быть с совместимостью с разными магазинами?
>[оверквотинг удален]
>>>поставить где угодно и сервер мы не контролируем.
>>>PHP-скрипт пользователи будут
>>>устанавливать как плагин к магазину и это все, что будет доступно.
>>
>>Этот ПХП скрипт - просто будет передавать поток данных из программы
>>в базу данных.
>>Просто принимать поток команд от программы на делфи и передавать его к
>>базе а потом отдавать назад ответ базы...
>
>А каким образом это реализовать?Вы же программисты.. разве нет? Вы не знаете как организуется взаимодействие программ через сеть? Наверное нужно нанять программиста на ПХП который умеет работать с сетью...И тоже для делфи..
>И как быть с совместимостью с разными магазинами?
Вы же будите работать напрямую с базой данных. ПХП скрипт в этом смысле будет играть роль прокси-сервера для ваших запросов к базе данных...
На этом этапе - проблемы совместимости вообще не стоит...
>[оверквотинг удален]
>>>PHP-скрипт пользователи будут
>>>устанавливать как плагин к магазину и это все, что будет доступно.
>>
>>Этот ПХП скрипт - просто будет передавать поток данных из программы
>>в базу данных.
>>Просто принимать поток команд от программы на делфи и передавать его к
>>базе а потом отдавать назад ответ базы...
>
>А каким образом это реализовать? И как быть с совместимостью с разными
>магазинами?ПХП скрипт в принципе ничего наружу передавать не может, и не будет!
Передает и принивает ВЕБ СЕРВЕР, а вот принятое он отдает скрипту, и наоборот - передает то, что сгенерил скрипт. Надо для начала это четко понять, как я понял вы вообще слабо представляет как функционирует веб сервер. Для начала надо понять это!Если всетаки вы решите пойти по этому пути (хотя еще раз повторюсь что это глупость), то как один из вариантов:
прога по http передает запрос (можно прямо запрос, можно какойто свой формат придумать),
скрипт принимает данные, действует согласно инструкциям, возвращает стутас обратно через http. Т.е. фактически между SQL-сервером и клиентом появляется некоторая транслирующая прослойка в виде вебсервера с пхп со стороны сервера + http клиент на стороне клиента, который разруливает ваш хитро-выебнутый интерфес.НО: при этом встают проблемы.
1)любой глюк на протяжении всей цепочки будет отражатся на всем процессе, трудность анализа, трудность отлавливания.
2)потенциальная дыра, необходима авторизация и поддержка SSL как минимум.
>[оверквотинг удален]
>>>
>>>Этот ПХП скрипт - просто будет передавать поток данных из программы
>>>в базу данных.
>>>Просто принимать поток команд от программы на делфи и передавать его к
>>>базе а потом отдавать назад ответ базы...
>>
>>А каким образом это реализовать? И как быть с совместимостью с разными
>>магазинами?
>
>ПХП скрипт в принципе ничего наружу передавать не может,Упс... какая неприятность :))
> и не будет!
Это ваша личнная позиция (или просто уровень вашей компетенции?), и к возможностям которые предоставляет для работы веб сервер, язык программирования PHP, и технология CGI - никакого отношения не имеет.
Если вам не понравился совет - это ваши проблемы.
>[оверквотинг удален]
>
>Упс... какая неприятность :))
>
>> и не будет!
>
>Это ваша личнная позиция (или просто уровень вашей компетенции?), и к возможностям
>которые предоставляет для работы веб сервер, язык программирования PHP, и технология
>CGI - никакого отношения не имеет.
>
>Если вам не понравился совет - это ваши проблемы.1) Если речь идет о php как модуле (или как cgi handler), то я уже сказал, что в данном случае обработкой запросов занимается веб сервер.
2) Если речь идет о php как о консольном интерпритаторе - то, прастите, как я понял вы хотите предложить написать на нем некоторое подобие сервера, фактически подобие веб сервера, но зачем когда уже есть готовый веб сервер? Или я чото не понимаю в этой жизни? По мойму в этом случае эта идея действительно попахивает маразмом )
>[оверквотинг удален]
>придумать),
>скрипт принимает данные, действует согласно инструкциям, возвращает стутас обратно через http. Т.е.
>фактически между SQL-сервером и клиентом появляется некоторая транслирующая прослойка в виде
>вебсервера с пхп со стороны сервера + http клиент на стороне
>клиента, который разруливает ваш хитро-выебнутый интерфес.
>
>НО: при этом встают проблемы.
>1)любой глюк на протяжении всей цепочки будет отражатся на всем процессе, трудность
>анализа, трудность отлавливания.
>2)потенциальная дыра, необходима авторизация и поддержка SSL как минимум.Спасибо конечно за ликбез, но ответ абсолютно бестолковый и бесполезный. Насчет php скрипта, это естественно было упрощение, умный человек к словам цепляться бы не стал. Я спрашивал, какой формат кто может предложить, а у вас ответ "можно какойто свой формат придумать"... ну и дальше описание самой схемы, которая была в вопросе...
>Спасибо конечно за ликбез, но ответ абсолютно бестолковый и бесполезный. Насчет php
>скрипта, это естественно было упрощение, умный человек к словам цепляться бы
>не стал. Я спрашивал, какой формат кто может предложить, а у
>вас ответ "можно какойто свой формат придумать"... ну и дальше описание
>самой схемы, которая была в вопросе...надо внимательно читать )
> прога по http передает запрос (можно прямо запрос, можно какойто свой формат придумать),
1)что мешает тупо отдать через POST SQL-запрос в открытом тексте?
2)что мешает в три строки испольнить это запрос на сервере?
3)что мешает сгенерить ответ со статусом либо в виде таблицы с данными в виде формы html и вернуть клиенту?
4)что мешает на клиенте распарсить полученный html и увидеть результат?P.S. тут товарисч один советует на php сервер написать )) Можно воспользоваться и его маразматичной идеей ))
>>[оверквотинг удален]
>Спасибо конечно за ликбез, но ответ абсолютно бестолковый и бесполезный. Насчет php
>скрипта, это естественно было упрощение, умный человек к словам цепляться бы
>не стал.Вы сабж то своего сообщения читали?
"Пересылка данных из windows-программы php-скрипту"
>>>[оверквотинг удален]
>>Спасибо конечно за ликбез, но ответ абсолютно бестолковый и бесполезный. Насчет php
>>скрипта, это естественно было упрощение, умный человек к словам цепляться бы
>>не стал.
>
>Вы сабж то своего сообщения читали?
>
>"Пересылка данных из windows-программы php-скрипту"Я текст читал ... )
Там подробнее описано - если речь идет не про интернет-магазир - то тогда я точно старый маразматик и гоню полную туфту )))
>Как устанавливать соединение и как передавать данные?Последний раз видел делфи лет семь назад, так что не в курсе чего там есть, особенно с учетом того, что вы даже версию не указали. Поищите какой-нибудь компонент умеющий отсылать post запросы.
>В каком формате передавать данные и как проверять целостность принятых данных?Да в каком хотите, что вы вообще надеялись услышать в ответ на этот идиотский(да, да, именно идиотский, хотя может дебильный тоже подойдет) вопрос? Говорят, сейчас модно все в XML пихать, попробуйте и вы
>Каким образом можно организовать синхронизацию обеих баз?Вот это уже интересней. Я бы делал по контрольным точкам (можно и по датам, но менее надежно). То есть php сервер при любом обновления данных увеличивает некий индекс(собственно контрольная точка), при обновлении от делфей возвращает текущее значение этого индекса. Соответственно при запросе на синхронизации передается от делфей последний известный индекс и php сервер возвращает все что пришло после.
Вообще говоря ваши задачи слишком просты в реализации и при этом жестко связанны с имеющейся структурой, не понимаю зачем при этом задавать вопросы общего характера.
В общем померялись письками, друга друга поопускали, попытались вознести себя любимого, написали всякой чуши, даже не читая вопроса, но ничего конкретного и действительно толкового никто так и не написал, зачем было лезть вообще?...
>В общем померялись письками, друга друга поопускали, попытались вознести себя любимого, написали
>всякой чуши, даже не читая вопроса, но ничего конкретного и действительно
>толкового никто так и не написал, зачем было лезть вообще?...Тебе уже двое предложили вариант с POST - чем тебя это вариант не устраивает?
Или ты не понимаешь о чем речь?
>>В общем померялись письками, друга друга поопускали, попытались вознести себя любимого, написали
>>всякой чуши, даже не читая вопроса, но ничего конкретного и действительно
>>толкового никто так и не написал, зачем было лезть вообще?...
>
>Тебе уже двое предложили вариант с POST - чем тебя это вариант
>не устраивает?
>Или ты не понимаешь о чем речь?Фигня это, а не вариант...
>>>В общем померялись письками, друга друга поопускали, попытались вознести себя любимого, написали
>>>всякой чуши, даже не читая вопроса, но ничего конкретного и действительно
>>>толкового никто так и не написал, зачем было лезть вообще?...
>>
>>Тебе уже двое предложили вариант с POST - чем тебя это вариант
>>не устраивает?
>>Или ты не понимаешь о чем речь?
>
>Фигня это, а не вариант...Почему фигня? )
Видимо писать сервер на php это не фигня )P.S. Вам бы научится вообще задачи ставить, не от фанаря, как вы это делаете, а хотя приближенно к програмным средствам. Чуствуется ваша отдаленность от понимания процесса.
Интересно, на каком этапе проявилася твоя "приближенность" к пониманию? наверное, в том, что сказал, что все тупо и глупо, так что же тогда умно? :)Задача была описана хоть и очень в общих чертах, но вполне ясно, беда в том, что описание никто не читал особо. Если бы задача была не ясна, то можно было уточнить, а не писать тупые советы в разрез с поставленной задачей. Сервер на пхп писать никто не собирался. А вот советы действительно бестолковые до безобразия.
Нихрена не знаешь толком, зато считаешь себя умнее других?
Считаю ли я себя умней тебя? ДА!Еще один последний раз для особо одаренных дельфи-песателей!
Изначально: у тебя есть php скрипт (КАК ТЫ, И ТОЛЬКО ТЫ ЕГО НАЗЫВАЕШЬ), по сути у тебя есть некоторое веб приложение (ака site), которое бля крутится ни где иначе как нах НА ВЕБ ВЕРВЕРЕ, да блять на нем родимом!!! Значит работать тебе придется через веб сервер! НЕТУ БЛЯТЬ В ЭТОМ СЛУЧАЕ ДРУГОВА ПУТИ, НЕТУ!!! Протокол, ебанаврот, по которому клиент это нах http, хоть ты абасрись, но это все равно http. Я например знаю методы передачи этого протокола типа POST, GET и тд.
А если ты считаешь себя умней других - хера ты тут вообще пишешь, Научатся по книжке "дельфи для чайников" с базой работать, и все. Интеллект кончился.
Под конкретным ты, наверное, понимаешь код на делфи и пыхе, который сможешь просто скопипастить и доложить начальству о выполнении задания. Должен тебя разочаровать, даже если бы нашелся здесь альтруист пишуший код за тунеядцев, то при всем желании он не смог бы это сделать, ибо никаких _конкретных_ данных ты предоставить не изволил. Ну а на общий вопрос тебе дали исчерпывающий ответ, разве что не воспользовались вместо тебя гуглом и не нашли нужную компоненту к делфи.P.S. люди умеющие правильно задавать вопросы в большинстве случаев находят на этом форуме нужные ответы.
+ 100
>Подскажите, пожалуйста, решение...Делаешь очень просто и париться не надо совсем:
пишешь на своей любимой дельфи веб-сервер или просто сервер, а пхп стучиться к тебе и берет все что надо. Хочешь оле используешь, дком актив-икс, вбскрипт, вордище ну в общем все класные технологии от Макро$офта. В добавок зипуешь и раришь файло - ведь удобно, винда под боком. В качестве формата можно использовать doc, xls, win-txt, а еще лучше бинарный в виде рекордов паскаляА зачем тебе возиться к кроссплатформенностью? Это проблемы клиентов... Пусть ставят себе винду под вайном или перезагружают комп: это ведь не стремно.
В дальнейшем можно перенести дельфи на сторону веб-сервера, там прикрутить пхп к серверной винде и вообще нет преград. В этом случае даже пхп не очень нужен.
Админ магазина через рдесктоп зайдет. Красотища! Все под боком. Со временем можно и от браузерных технологий отказаться...Зачем париться с https/http, сессиями, аяксом, явойскрипт, когда винда все умеет и делает за нас?
Выдаешь клиенту диск с софтом для доступа к магазину и все путем... ну или запихнуть все это в актив-икс: винда сделает всю сложную работу...
>Делаешь очень просто и париться не надо совсем:
>пишешь на своей любимой дельфи веб-сервер или просто сервер, а пхп стучиться
>к тебе и берет все что надо.гыгы. )))
Ну вааааще )))
А ниче что:
1) веб сервер принимает ВХОДЯЩИЕ соединения? Можно конечно скриптом изладить ИСХОДЯЩИЕ, но для этого надо обратиться к скрипту?
2) Также нужно умодриться запустить шудуллер на веб серваке - те запускать скрипты по рассписанию ))