Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Веб-программирование > PHP / MySQL

PHP / MySQL Создание динамических Веб-ресурсов

Ответ
 
Опции темы
Старый 25.11.2014, 13:03   #1
Licon
AnyKey`щик
 
Регистрация: 12.03.2009
Сообщений: 5
Написано 0 полезных сообщений
(для 0 пользователей)
Смех Как запустить приложение под win

Доброго времени суток уважаемые форумчане! Может конечно не совсем сюда пишу, но тем не менее, задача такая: необходимо запустить приложение на локальной машине кликом по ссылке, а если быть точнее, то проводник, а если быть еще точнее, то проводник на моей машине, когда сервер стоит на другой машине. PHP приложения выполнять умеет командой exec, т.е. на той машине на которой стоит сервер, я по ссылке открыть папочку могу так:

dir = 'explorer.exe D:\server\home\www\folder';
exec($dir);

Задача стоит в том, чтобы эта папочка открывалась на машине в локальной сети по адресу: \\192.168.0.1\server\home\www\folder

Как я понимаю, php здесь уже не подходит, ибо он выполняет только команды на сервере... Есть какие мысли, как решить такую проблему? javascript? или еще может что? IE с его activeX не предлагать.
(Offline)
 
Ответить с цитированием
Старый 25.11.2014, 13:15   #2
Mr_F_
Легенда
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,879
Написано 2,131 полезных сообщений
(для 5,728 пользователей)
Ответ: Как запустить приложение под win

т.е. запустить рандомный ехе с твоего харда кликом по ссылке в браузере? это же ппц дыра безопасности - все способы это сделать давно закрыли.
__________________
бложик
geom.io
твиттер
(Offline)
 
Ответить с цитированием
Старый 25.11.2014, 13:29   #3
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,321
Написано 5,164 полезных сообщений
(для 14,920 пользователей)
Ответ: Как запустить приложение под win

Да, извращение, конечно, приличное.

Тут не обойтись без обработчика на локальной машине. Потому что это уже отдельный комп, и сервер ему не указ (если бы можно было за здорово живёшь делать exec на соседних машинах, был бы трындец).

Из браузера при помощи javascript'а тоже нельзя ничего выполнять в системе, безопасность-с. Если каждый сайт сможет на компе юзера открывать проводних (хотя бы!) был бы адъ.

Локальная машина, я так понимаю, Виндовая? Тогда вариант с ssh не катит.

Мне первым пришёл в голову вот такой путь.
Может, он довольно нелепый, но мне кажется наиболее быстрым и наименее трудоёмким.

На локальной машине тоже ставим веб-сервак (WAMP например).
Кроме того под такую задачу не лишним будет сделать отдельный виртуальный хост и дал доступ к нему ТОЛЬКО с 192.168.0.1. То есть чтобы с любого другого хоста нельзя было этой штукенцией воспользоваться (меры безопасности).

На нём заводим php-файлик, где:

1. Проверяем, пришёл ли запрос от 192.168.0.1, если нет, то
echo 'пшёл нах!';exit; 
2. В гете получаем путь, который надо открыть
3. Присобачиваем его к строчке 'explorer.exe '
4. exec'им это дело.

В идеале ещё бы неплохо сделать проверку, пришёл ли действительно путь, или туда ещё пытаются вклинить какие-то ещё команды.

Соответственно на твоём серваке при клике на ссылку мы вызываем php'шник с локальной машины, чтоб он сработал (хотя бы так):

file_get_contents('http://айпишник-локальной-машины/путь-к-похапэшнику.php?path=путь-для-открытия'); 
Как-то так. По идее будет работать.

Вариант: вызывать загрузку страницы 'http://айпишник-локальной-машины/путь-к-похапэшнику.php?path=путь-для-открытия' прямо из javascript'а при помощи ajax-запроса (например через jQuery). Тогда во-первых избавимся вообще от чего бы то ни было на серваке. Во-вторых можно будет в будущем себе юзерскрипт насобачить, чтобы тебе на странице делал ссылку "открыть файл где сие лежит" (я так понял ты этого в конечно итоге хотел?).

Ну то есть на жабе это будет выглядеть как:

$.ajax({url'http://127.0.0.1/путь-к-похапэшнику.php?path=путь-для-открытия'}).success(function(){alert('Ну, вроде, должно открыться!');}); 
Только учти что тогда запрос на web-сервер локальной машины будет приходить уже с адреса 127.0.0.1, тогда надо разрешить выполнять запросы с него, а не с 192.168.0.1.

Конечно, вариант подымать Apache + php на локальной машине только заради этого выглядит для кого-то абсурдно. Можно на C# например написать обработчик, который будет делать то же самое. Короче тут вариантов много я предложил только один из них.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Mr_F_ (25.11.2014), St_AnGer (25.11.2014)
Старый 25.11.2014, 14:40   #4
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,911
Написано 3,396 полезных сообщений
(для 9,286 пользователей)
Ответ: Как запустить приложение под win

Ну вообще эксплорер посылает такие указы нахрен, ибо доверяет он только файлам с расширение hta в этом случае. Но там свои вопросы.
Собственно все автораны от пиратов в нулевые были сделаны из браузера и hta файлов с сылками на локальные файлы.
__________________
(Offline)
 
Ответить с цитированием
Старый 25.11.2014, 14:54   #5
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 26.06.2009
Адрес: Рязань-Москва
Сообщений: 458
Написано 389 полезных сообщений
(для 1,040 пользователей)
Ответ: Как запустить приложение под win

Да взять и написать клиент-сервер по бырому, хоть на блице - дел то на 5 минут. Нафик извраты городить:Р.
(Online)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Arton (25.11.2014)
Старый 25.11.2014, 17:16   #6
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,321
Написано 5,164 полезных сообщений
(для 14,920 пользователей)
Ответ: Как запустить приложение под win

Сообщение от SBJoker Посмотреть сообщение
Ну вообще эксплорер посылает такие указы нахрен, ибо доверяет он только файлам с расширение hta в этом случае. Но там свои вопросы.
Собственно все автораны от пиратов в нулевые были сделаны из браузера и hta файлов с сылками на локальные файлы.
Ну короче основной посыл в том, чтобы из браузера передать команду "своему человеку" в системе. А там уже конкретную реализацию уточнять (я не знал что по exec('explorer C:\'); не откроется, но решения же есть для этого).
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 26.11.2014, 05:10   #7
Licon
AnyKey`щик
 
Регистрация: 12.03.2009
Сообщений: 5
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как запустить приложение под win

В общем на одной машине(на сервере) у меня стоит денвер с папочками и файликами, на сервере все работает норм, хочу чтобы на машине которая в локалке тоже открывались папочки с файликами. Как уже писали выше в голову пришел только способ как установить на машине тоже денвер со всеми скриптами и доступом к мускулу который на сервере и в нем уже открывать локальный проводник в котором открывать удаленную папку, но это очень не удобно, машин в офисе много и за ними сидят курицы. javascript не знаю, но по моему только он выполняется непосредственно на клиентской машине.
(Offline)
 
Ответить с цитированием
Старый 26.11.2014, 05:14   #8
Licon
AnyKey`щик
 
Регистрация: 12.03.2009
Сообщений: 5
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как запустить приложение под win

Или тупо писать приложение на С++ с коннектом к мускулу и обрабатывать все сценарии в нем... уже исключительно на локальной машине.
(Offline)
 
Ответить с цитированием
Старый 26.11.2014, 08:21   #9
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 26.06.2009
Адрес: Рязань-Москва
Сообщений: 458
Написано 389 полезных сообщений
(для 1,040 пользователей)
Ответ: Как запустить приложение под win

Что-то вообще не понятно чего ТСу надо. Открыть папочку в локальной сети? Так это стандартными средствами вообще делается - настройки общего доступа.
Много машин с курицами? Прям курятник:Р Сделай на каждой ярлычки на нужные сетевые папки.

Если не это, то получается удаленно на сервере надо запустить проводник, который зайдет в определенную папку... Вот только зачем это? Запустится он, так и будет висеть на удаленном сервере.
(Online)
 
Ответить с цитированием
Старый 26.11.2014, 10:14   #10
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,321
Написано 5,164 полезных сообщений
(для 14,920 пользователей)
Ответ: Как запустить приложение под win

Нашёл способ упросить дело.

http://kb.mozillazine.org/Register_protocol
Регистрируем протокол в системе (там дан пример reg-файлика).

Тогда сможем запускать нужную программу из окна браузера с параметром командной строки (куда сунем путь к папке).

Хотел напрямую увязать на explorer.exe, но тот не захотел открывать таким образом (см. пост 4). То есть как ни крути всё равно нужна какая-то программа-прослойка на клиенте. Возможно, её можно свести до батника.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 19:40.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com