|
|
  |
Соединиться из Builder 2006 с MySQL, но не светить логин/пароль |
|
|
|
Nov 18 2011, 15:21
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(toweroff @ Nov 18 2011, 16:47)  что значит "какому-то администратору"? он-то как раз должен знать, что там эти пользователи делали. Причем простым селектом Странный сценарий. Администратор это тот кто создает, удаляет и архивирует таблицы и базы данных, смотрит логи. Сами данные он смотреть не может. Это по логике. Но о каком этапе жизни продукта говорим. О разработке или эксплуатации?
|
|
|
|
|
Nov 18 2011, 16:04
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(AlexandrY @ Nov 18 2011, 19:21)  Странный сценарий. Администратор это тот кто создает, удаляет и архивирует таблицы и базы данных, смотрит логи. Сами данные он смотреть не может. Это по логике.
Но о каком этапе жизни продукта говорим. О разработке или эксплуатации? наверное, не так выразился доступ нужен не тому, кто обслуживает базу как таковую, а пользователю, который может смотреть все записи посмотрел нет у меня прав на создание пользователей  на компе можно, на серваке phpmyadmin не дает создать юзверя. Буду хостера бодать
|
|
|
|
|
Nov 21 2011, 09:56
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(XVR @ Nov 21 2011, 13:05)  Это грубо говоря программа, работающая на хосте. Именно она общается с базой данных, а пользователи общаются с ней, база данных напрямую им вообще не доступна. в целом это понятно. Гугл есть, на крайняк можно тут спросить вопрос в другом - каким способом из приложения мне достучаться до этого сервлета? пока единственное, что нашел - пользовать TIdHTTP. Оттуда формировать запрос, получать ответ. Какими еще компонентами можно воспользоваться? Или я вообще не в ту сторону повернулся и заморочки с MySQL - более простое и безопасное решение?
|
|
|
|
|
Nov 21 2011, 10:28
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата вопрос в другом - каким способом из приложения мне достучаться до этого сервлета? Со стороны клиента этот сервлет будет представлен некоторым URL. Запросы будут представлены параметрами (в URL) или частью пути (опять же в URL). Цитата пока единственное, что нашел - пользовать TIdHTTP. Оттуда формировать запрос, получать ответ. Стандартный WEB браузер (DHTML/JS/Ajax - по желанию/Flash/Flex). Можно еще Java подключить (тогда вообще открывается масса возможностей для связи с сервлетом - JSON, CORBA, SOAP и т.д. и т.п.) Делать морду на Builder'е для Internet приложения - путь явно тупиковый. Цитата Или я вообще не в ту сторону повернулся и заморочки с MySQL - более простое и безопасное решение? Если вы выставите MySQL базу в Internet, то готовьтесь к тому, что ее будут ломать всем Internet'ом (чисто из спортивного интереса) PS. Задайте свой вопрос тут
|
|
|
|
|
Nov 21 2011, 12:36
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(XVR @ Nov 21 2011, 14:28)  Делать морду на Builder'е для Internet приложения - путь явно тупиковый. почему? мне всего-то нужно залогиниться, получить кусок инфы и разлогиниться Цитата(XVR @ Nov 21 2011, 14:28)  Если вы выставите MySQL базу в Internet, то готовьтесь к тому, что ее будут ломать всем Internet'ом (чисто из спортивного интереса) а вот тут правда Ваша, не подумал  если через Indy - лезу на спец.страницу, логинюсь, PHP выплюнет мне какие-то данные, индеец ее назад получит, я в программе обработаю получается, ни куча пользователей MySQL не нужна, ни сервлеты или я опять что-то упустил? опыта-то в таких делах никакого
|
|
|
|
|
Nov 21 2011, 15:06
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата почему? мне всего-то нужно залогиниться, получить кусок инфы и разлогиниться А инфа пусть пропадает? Или все же с ней нужно что то сделать  На чем писать (и в каком виде) сильно зависит от того, что нужно сделать. Вариант с WEB браузером хорош тем, что пользователю не надо будет ставить никаких специальных программ, и обновлять их (если что) тоже не надо. Цитата если через Indy - лезу на спец.страницу, логинюсь, PHP выплюнет мне какие-то данные, индеец ее назад получит, я в программе обработаю Можно Цитата получается, ни куча пользователей MySQL не нужна, ни сервлеты В этом случае ваша PHP страница и будет сервлетом (правда очень примитивным)
|
|
|
|
|
Nov 22 2011, 21:36
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Посмотрите и покритикуйте, пожалуйста, вот такой механизм на PHP набросал только скелет все ляпы потом отрехтуются, важен именно порядок действий и их правильность Код <?php session_start();
$current_time = time();
if (isset($_SESSION['counter'])) { if ($_SESSION['counter']>1) { if ((time() - $_SESSION['time'])<60) { echo "Too many attemps. Please wait 60secs"; exit; } else { $_SESSION['time'] = time(); $_SESSION['counter'] = 0; } } }
if (!isset($_SESSION['user_id'])) if (isset($_POST['auth_name'])) {
// здесь коннектимся к базе, запрашиваем пользователя с нужными логином/паролем // ...
$result = mysql_query($query, $link);
if ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
session_start(); $_SESSION['user_id'] = $row['id']; $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; $_SESSION['test_string'] = $row['test_string']; $_SESSION['name'] = $row["name"]; echo "Logged in as ".$row['name']."; ".$row['test_string']; show_data(); } else { if (isset($_SESSION['counter'])) { $_SESSION['counter']++; echo "Try: ".$_SESSION['counter']; } else { $_SESSION['counter'] = 0; $_SESSION['time'] = time(); echo "Flag: invalid\n"; } }
mysql_free_result($result); mysql_close($link); exit; }
if (isset($_GET['action']) AND $_GET["action"]=="logout") { session_start(); session_destroy(); echo "Flag: closed"; exit; }
if (isset($_REQUEST[session_name()])) session_start(); if (isset($_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) { echo "Flag: OK\n"; echo "Already logged as ".$_SESSION['name']."; ".$_SESSION['test_string']; show_data(); exit; } else { session_start(); echo "Flag: autentification"; ?> <form method="POST"> <input type="text" name="auth_name"><br> <input type="password" name="auth_pass"><br> <input type="submit"><br> </form> <?php } exit; ?> есть подозрение, что по action=logout нужно тоже проверять, были ли залогинены (то есть в сессии присутствует "id") Цитата(XVR @ Nov 22 2011, 10:20)  Угу, а какой нибудь GUI вообще нужен? Или никаких действий со стороны пользователя не ожидается (ну кроме самого факта запуска программы)? гуй будет, форма с кнопочками и логом От юзверя действия, конечно, будут нужны - да/нет там всякие. Но в передаваемые данные он не вмешивается
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|