CyberCrow Опубликовано 14 Ноября 2006 Жалоба Поделиться Опубликовано 14 Ноября 2006 Сабж. Мне нужно следующее.НА компе у меня установлен фтп (внешний IP и все прочее, чтоб люди качали и закачивали файлы) и есть форум где в теме нужно мне установить индикатор когда фтп в Online и когда выключен... Понимаете?Помогите плз. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 14 Ноября 2006 Жалоба Поделиться Опубликовано 14 Ноября 2006 Понимаем.. Форум находится далеко от компа с фтп ? Если нет - просто попытаться открыть сокет на 21ый порт с таймаутом 1 сек, открылся - онлайн, не открылся - оффлайн. Если форум далеко - то данные надо кэшировать и обновлять раз в пять минут. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 15 Ноября 2006 Жалоба Поделиться Опубликовано 15 Ноября 2006 Почитай темку: http://mynewage.ru/index.php?showtopic=5201 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Garret Опубликовано 15 Ноября 2006 Жалоба Поделиться Опубликовано 15 Ноября 2006 Если нет - просто попытаться открыть сокет на 21ый порт с таймаутом 1 сек, открылся - онлайн, не открылся - оффлайн. Если форум далеко - то данные надо кэшировать и обновлять раз в пять минут.Зачем что то кэшировать? Каждую минуту пытатся коннектится на фтп сервер. Бывает также что на фтп сервер тяжело законнектится, тогда сделаем так-с:<?php $server = "ftp.microsoft.com"; $port = 21; $timeout = 5; $tries = 5; while (!$fp && $i++ < $tries) { $fp = fsockopen($ftp_server, $port, $errno, $errstr, $timeout); if (!$fp) continue; else $state = true; } fclose ($fp); ?> И выполнять это нужно только при загрузке страницы, можно конечно сделать на аяксе чтобы динамически проверялось состояние фтпшника. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 15 Ноября 2006 Жалоба Поделиться Опубликовано 15 Ноября 2006 2Garret, ничего не имею против, но с коннектом к серверам в достаточной мере удалённым - может потребоваться порядка 20 секунд. Если выводить эту информацию на все страницы форума - то твой скрипт будет заставлять ждать при загрузке каждой страницы, что не есть верно. А если сделать 20сек ? То-то же. Надо раз в 10 минут проверять и запись в БД результат, а при просмотре страниц - просто выводить то, что лежит в БД. Создавать отдельную страницу, на которой будет написан статус фтп - не вижу смысла, т.к. - не совсем удобно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 15 Ноября 2006 Жалоба Поделиться Опубликовано 15 Ноября 2006 В БД нужно сделать поле 1|0по этому полю выводить статус.Через каждые n минут запускать скрипт, который будет проверять готовность сервера и писать в это поле циферку. Это всё. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 15 Ноября 2006 Жалоба Поделиться Опубликовано 15 Ноября 2006 В БД нужно сделать поле 1|0по этому полю выводить статус.Через каждые n минут запускать скрипт, который будет проверять готовность сервера и писать в это поле циферку. Это всё.Да, да, я говорю именно об этом, просто наверное не совсем верно изъясняюсь. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Garret Опубликовано 16 Ноября 2006 Жалоба Поделиться Опубликовано 16 Ноября 2006 2Garret, ничего не имею против, но с коннектом к серверам в достаточной мере удалённым - может потребоваться порядка 20 секунд.Я что говорил тупо копировать этот скрипт? Просто для примера привел, у кого брэйн девайс работает, тот додумается изменить таймаут на нужный. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
TOIIOP Опубликовано 17 Ноября 2006 Жалоба Поделиться Опубликовано 17 Ноября 2006 Можно обычный скрипт проверки сделать, не через базу, но в теме выводить через слой, чтоб страничка грузилась без проблем, а потом проверялось на слое фтп. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.