Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Доступ из настольного ПО к БД на сервере через PHP
Форум на CrossPlatform.RU > Курилка > Алгоритмы, задачи по программированию, логические игры
Litkevich Yuriy
Возникла надобность: получить доступ к БД сервере из ПО на локальной машине (написанное на С++).
Однако есть ограничение: к БД можно подключится только с локальной машины этой БД например из PHP сценария сайта.

Как сварганить на PHP и C++ "мост", может у же есть какие-то готовые решения (технологии) поддерживаемые библиотеками указанных языков?
academ1c
Цитата(Litkevich Yuriy @ 5.7.2013, 21:46) *
Однако есть ограничение: к БД можно подключится только с локальной машины этой БД например из PHP сценария сайта.


А можно подробнее по поводу подключения только с локалхоста ? Это такая политика или там Embeded ?
Iron Bug
к пыху можно писать расширения - свои модули на С++. может, в эту сторону копнуть? но задача какая-то странная. настройка доступа в мускуле - дело минутное.
Litkevich Yuriy
Цитата(academ1c @ 8.7.2013, 3:50) *
Это такая политика
да, это ограничения хостера обусловленное их политикой безопасности


Цитата(Iron Bug @ 8.7.2013, 8:15) *
к пыху можно писать расширения - свои модули на С++
у меня нет доступа к самому PHP, я могу только свои PHP-сценарии на сервер положить.
Iron Bug
ну, теоретически, ты можешь сделать скрипт, который будет получать запрос к базе и заполнять на основании результатов некий массив данных, а потом вызывать его из http запроса. но это извращение. :)
Litkevich Yuriy
я просто с трудом представляю как это (сеть) вообще работает.
Я пока научился скачивать вебстранички с помощью программы на Qt. А тут нужно будет с помощью программы отправлять какие-то запросы, это вроде тоже есть в примерах Qt. А вот как их получать?

Вопросы одни.
Iron Bug
как-то так, например:
http://stackoverflow.com/questions/1520738...-php-doesnt-wor
Litkevich Yuriy
ага что-то интересное
molchanoviv
Пусть и с месячным опозданием, но все-же. :) Самый лучший вариант написать небольшое REST-Api на php и обращаться к нему из программы посылая соответствующие HTTP запросы(GET,PUT,PATCH,DELETE) на сервер.
Litkevich Yuriy
Цитата(molchanoviv @ 25.8.2013, 19:01) *
Пусть и с месячным опозданием, но все-же
Задача не решена, так что нормально всё.


Цитата(molchanoviv @ 25.8.2013, 19:01) *
написать небольшое REST-Api на php
вот мне бы пример этого дела, а то я PHP методом научного тыка использую "если в движке моего интернет-магазина в таком-то месте сделать то-то, то это даст такой-то результат" ну и дальше по аналогии.
molchanoviv
А что за интернет магазин-то? На чем он крутится? Движок самописный или готовый какой? А вообще вот почитай про REST. Можешь сам реализовать такое поведение проверяя $_SERVER['REQUEST_METHOD'] на вышеуказанные методы или взять готовый фреймворк и использовать его. Суть в чем. По запросу вида GET yourserver.net/yourtable/ получаешь данные из таблицы yourtable с сервера yourserver.net Ну и соответственно помещать по запросу PUT, удалять по DELETE, обновлять по UPDATE. Ну и конечно не забудь делать это все по https если тебе важна безопастность.
Litkevich Yuriy
на OpenCart-е
molchanoviv
Значит Plain PHP. Без фреймворков. Ну тогда придется написать скрипт вида db.php

<?php
if($_SERVER['REQUEST_METHOD'] == 'GET'){
//получить данные из базы
} elseif($_SERVER['REQUEST_METHOD'] == 'PUT') {
//записать в базу
} elseif($_SERVER['REQUEST_METHOD'] == 'PATCH') {
//обновить данные в базе
} elseif($_SERVER['REQUEST_METHOD'] == 'DELETE') {
//удалить данные из базы
} else {
//некорректный HTTP метод
}


Для авторизации достаточно использовать HTTP-авторизацию. В качестве формата данных удобнее всего использовать JSON.
Litkevich Yuriy
molchanoviv, можешь объяснить чем отличаются Get и Put, а то я в исходниках вижу то тот, то другой.
molchanoviv
GET это передача данных в URL-е. Обычно на него вешается получение информации. PUT-же очень похож на POST. Т.е. информация передается не в URL-е а в самом теле запроса. Обячно на PUT вешают создание информации на сервере. Вот в вики объясняются методы HTTP
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2018 IPS, Inc.