Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 26.10.2002, 19:49
Wave вне форума Посмотреть профиль Отправить личное сообщение для Wave Посетить домашнюю страницу Wave Найти все сообщения от Wave
  № 11  
Wave
еретик

Регистрация: Jan 2001
Адрес: Харьков, Украина
Сообщений: 919
Цитата:
На компьютере пользователя лежит swf. Пользователь нажимает кнопочку и с сервера запускается php-скрипт, который создает на компьютере пользователя(!) (не важно где) текстовый файл (пусть пустой).
Как реализовать сей финт ушами?
можно. можно сделать все, даже писать в реестр.

для начала давай рассмотрим вариант, который подходит для большинства клиентов.

в файловой системе клиента находится swf где прописано что то вроде getURL("http://server.com/magick/createfile.php")

мы запускает этот свф, который в свою очередь запускает сценарий...

и тут мы наламываемся, потому что сценарий createfile.php выполняется на другой машине, на сервере, компьютере, стоящем на площадке одного из ISP и скрывающемся под именем server.com, и тебе возвращается лишь результат выполнения этого скрипта.

несомненно выполняемый на этом компе скрипт не может взять и создать файл в любом месте на твоей машине, потому что если такое было бы возможным, то ты сам бы офигел от количества возможностей повредить данным в ТВОЕЙ файловой системе.

но...

что такое cookies? куки, это текстовые файлы, сохраняемые в определенном месте, в которых сервер (в том числе и server.com) может сохранить ограниченное количество данных.

это не противоречит твоим требованиям, потому что тебе все равно где, и даже все равно что...

соответственно мы переписываем код в swf в виде getURL("http://server.com/cookies/create.php")

содержимое файла create.php может быть примерно таким

<?php
setcookie ('cookie', 'value');
?>

алееее.... оп. текстовый файл создан.

но может быть тебя не устраивают легкие пути, и тебе необходимо что то будоражащее воображение и заставляющее стынуть кровь...

в таком случаее рассмотрим путь сложный и тернистый, кроме того накладывающий серьезные ограничения на клиентские машины (которые станут не такими уж и клиентскими в результате) и способ их подключения к сети.

для начала необходимо установить ftp-server на машину клиента. каждого клиента, которые хочет что бы кто то извне мог ковыряться в их файловой системе.

после чего мы изменяем swf, прописывая там такую штуку getURL("http://server.com/ftp/create.php")

и тут начинаются сложности.

как ты уже мог догадаться, мы собираемся подключиться к заранее настроенному фтп серверу на машине клиента (которая уже как бы и не клиент вовсе, а совсем наоборот)

но для этого нам надо знать две... нет, три вещи

1. адрес
2. имя для подключения
3. пароль для подключения

в принципе можно сделать доступ анонимным, но дать всем на свете полный доступ к своей файловой системе не лучшая идея (смотри выше).

возможные проблемы с определением адреса...

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

клиент может прятаться за прокси, и тогда мы скорее всего не узнаем его реального адреса (если такой имеется)

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

здесь проблем немеряная куча. как и вариантов их решения.
необходимо заметить, что сделать передачу идентификационных данных безопасной гораздо сложнее и трудоемчее чем настроить клиентскую машину без реального ИП адреса

в итоге, в том оченьмаловероятном случае если все прошло успешно, клиент запускает swf, тот вызывает скрипт на сервере, скрипт на сервере выступает в качестве клиента фтп сервера, который запущен на клиентской машине (которая теперь в свою очередь выступает в качестве сервера) и создает таки в твоей файловой системе текстовый файл...


и наконец рассмотрим последний случай ,когда тебе необходимо писать в реестр клиентской машины с удаленного сервера

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

поправьте меня, если я в чем то не прав....
__________________
These unidentyfied flying objects, that appeared to display unique characteristics, such as the speed, the record maneuverity and so on, must be studied in the interest of mankind

Создать новую тему   Часовой пояс GMT +4, время: 13:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


Часовой пояс GMT +4, время: 13:20.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.