Показать сообщение отдельно
Старый 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