![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
Доброго времени суток !
Возник такой вопрос ( а точнее их набор ) Хочу сделать "сервер-клиент" но основанный на Делфи и Пхп скриптах на сервере. Желаемые возможности : 1)Авторизация клиента на сервере 2)Загрузка на сервер файлов/данных через формы 3)"Общение в сторону Сервер => Клиент. То есть сервер "отправляет данные/сообщения" клиенту 4)Управление полученными данными на сервере(Админка так сказать) 5)Список подключившихся/подключённых ? клиентов Реализовать я всё это собрался по примитивному) так как php изучил только азы, коих в прочем хватает для работоспособности задуманного. А конкретнее : авторизация на сервере описана в другом разделе - тут. Данные ( текстовые к примеру , type=text , textarea ) вожможно передавать методом Пост , Как "заливать на сервер файлы" - есть примеры скриптов , правда они расчитаны под браузер , а у меня это должно происходить "без вмешательства пользователя". Редактирование данных на сервере(текстовых) также довольно просто, открытие в textarea оригинала , изменение , пересохранение. А вот ткак быть с общением в другую сторону? Чтобы сервер отсылал данные клиенту? Я решил сделать всё очень примитивно ![]() После некоторого времени пользования сервисом , на сервере получится некий список клиентов ( который хотелось бы видеть для информации , видеть тех кто в данный момент подключен) их данные ( отосланные ими файлы, отчёты о проделанной работе лог коннектов дисконектов скачиваний IP итд. Тут же вопрос , создавать каждому юзеру свою папку с данными? Подскажите ,как эффективнее реализовать то , что я задумал?Если можно , по пунктам ![]() //На днный момент , авторизация происходит по константам встроенным в пхп файл, и имеет переменные типа "уровня доступа" 0-3 , очень хотелось бы обойтись без MySQL ... Последний раз редактировалось Lime; 27.06.2009 в 13:55. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
![]() Цитата:
По пунктам как просили.(целых 2) 1.Отказаться от описанной вами схемы. 2.Углубиться в php до работы с сокетами и базами данных. Вариантов у Вас 2: 1)Работать через БД. Клиент и сервер работают с одной базой данных. Схема такая Delphi-клиент держит соединение с бд, с заданным интервалом обновляя данные и соответственно на них реагируюя. Взаимодействие происходит по схеме: сервер(php) пишет сообщение в базу->клиент читает его при обновлении, клиент пишет сообщение в базу и вызывает скрипт обработчик нужного события. Предпочтительный вариант учитывая что в php у Вас "только азы". 2)Работа через сокеты. Придумать протокол для "общения". Открыть соединение мд сервером и клиентом. Если вы работалт через сокеты то обьяснять как работать я думаю не надо. В этом случае возникают сложности, тк на сервере надо запускать php-демона. Этот вариант наилучший, но требует глубоких знаний php и delphi.
Стрелок-охотник
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
Хмм ... ЗА 3 дня один ответ , значит либо тема сложная , либо меня не поняли , либо действительно нужно переходить на бд.
Сокеты на делфи более менее занакомы , в пхп на данном этапе не хочу туда соватся. Как я понимаю необходимо у клиентов иметь "чистый" IP ... привязанный провайдером к компьютеру юзера/клиента. С бд я никогда не работал)) это меня немного и "пугает") вот и возможностей полных не знаю. +Хостинг с пхп найти намного рпоще чем с пхп+mysql ....если разберусь то возможно платный возьму) Ближе к теме , сопутствующие вопросы : 1)Мне будет нужно хранить файлы залитые с клиента на сервере , как их отделять? Создавать папки или можно использовать бд ? 2) Можно ли организовать доступ к бд(посредством скриптов) клиенту только полсе авторизации на сайте? Аналогично не только клиенту , но и юзерам на сайте? тоесть "юзер" - может просматривать файлы им залитые(его клиентом) и создавать/редактировать команды клиенту . "клиент" - только программа - может заливать файлы , смотреть команды , создавтаь команды для себя-же. "Админ" - соответственно имеет полный доступ , создание удаление просмотр ...ну и прочее не относящееся к бд. 3) - больше причина - SQL инекции ... как я понял для защиты достаточно всего лиш фильтрировать данные касающиеся запросов к бд. Можно снова по пунктам? - Спасибо ![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 06.01.2009
Сообщений: 340
|
![]()
1. Хранить можно или в определенной директории или в БД - зависит от того, какие данные будут храниться в файлах и как они будут использоваться в дальнейшем.
2. Из php-скрипта возможно обращение к БД, из Delphi тоже. 3. Да, нужно фильтровать: на кавычки, спецсимволы.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник". |
![]() |
![]() |
![]() |
#5 | ||
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
По тем-же пунктам :
Цитата:
Цитата:
А может я не правильно выразился - просто в некоторой степени ограничить права доступа с ехе приложения( ведь можно отследить куда моё приложение подключается .. и далее пробовать к моей базе подключится другим способом ...попытка взлома) Вот я и спрашиваю : Подключится к серверу - и в зависимости от логинпароля получить разные права на бд. возможно? Или как вариант бд изменять не напрямую из делфи приложения - а с помощью POST'ов как через браузер? Тогда уже пхп скрипт будет определять "права" и давать доступ к "формам" для редактирования удаления добавления записей в таблицы в соответствии с переменными уровня в сессии. От приложения в делфи требуется только залогинится + залить файлы в свою директорию/скачать файлы из своей директории/изменить некоторые данные о своём состоянии(-в файлах или бд ещё не решил , но скорее в бд) |
||
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
В принципе я делал на Делфи сервер на основе IdHTTP.
Можно прикрутить к ниму PHP интерпретатор, но на практике я такого не делал
I'm learning to live...
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 02.01.2009
Сообщений: 340
|
![]()
Нет. тем более, он называется "белый" IP. так вот, белый IP должен быть у сервера. у клиентов вполне могут быть серые IP, то есть клиентам по барабану где быть, либо напрямую в инете, либо через локаль, главное, чтобы был путь до сервера
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=) Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
![]() |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 06.01.2009
Сообщений: 340
|
![]() Цитата:
Для разграничения прав, в БД вводится соответствующее поле "группа". (например таблица: логин, пароль, группа) группы, скажем: admin, user, guest and etc. Ну и в зависимости от группы, к которой пренадлежит пользователь, он может совершить набор операций.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник". |
|
![]() |
![]() |
![]() |
#9 | ||
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]() Цитата:
Всё же я решил совершать общение через запросы клиента к бд напрямую или через скрипты. Цитата:
Остаётся вопрос по поводу загрузки файлов на сервер таким путём. Тоесть клиент логинится(программа) далее смотри инфо на сервере , отправляет своё ... анализирует и выполняет то что нужно ... в тч в некоторых случаях загружает на сервер файлы "отчёты" Файл схема со стороны юзера {1) Юзер управляет клиентом из браузера 2) На 1го юзера может быть зарегестрировано несколько клиентов 3) Юзер не должен знать логинпароль клиента(приложения на делфи) ЛогинПароль приложения сделан при регистрации клиентской части(при установке вводится логин пароль юзера , и на него регестрируется данная копия , так же ей лично выделается логин и пароль для работы с данного компьютера на сервере) для безопастности имеют больше прав чем юзер - потому что клиент выполняет только то что нужно , а юзер может натворить дел с правами клиента .. накидать лишних/ложных файлов на сервер итд итп ... } Последний раз редактировалось Lime; 30.06.2009 в 13:01. |
||
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 06.01.2009
Сообщений: 340
|
![]() Цитата:
P.S. Почему одному юзеру недостаточно одного "exe-клиента"? Если не секрет, можно в двух словах, что за проект?
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник". |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
БД клиент-сервер | [62]Gambit | Помощь студентам | 5 | 25.05.2010 10:49 |
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? | Demol | Работа с сетью в Delphi | 1 | 21.04.2009 16:18 |
клиент-сервер | Orsika2006 | Общие вопросы .NET | 1 | 29.03.2009 13:09 |
Клиент-сервер-клиент | Кронос | Работа с сетью в Delphi | 3 | 24.08.2007 07:57 |
Клиент-Сервер | snakesoft | Работа с сетью в Delphi | 8 | 20.07.2007 17:34 |