Делимся секретами создания сайтов

Удаленный файл настроек

Народ, как сделать так, чтобы файл настроек грузился с другого сервера?

include ('http://...../config.php');

неработает... Посоветуйте что-нибудь. И вообще, это возможно?

Ответы: 16 → “Удаленный файл настроек”

  1. Илья Антипенко Ответить

    ))
    Ну тебе приинклюдится пустой файл, так как include пошлет обычный ГЕТ запрос и следовательно удаленный серв отдаст пустую страницу….

  2. Василий Бернгардт Ответить

    хм.. а если серв занят будет? или вообще упадет?

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

  3. Антон Антониади Ответить

    Так весь вопрос в том, как туда достучаться! Посоветуйте чего-нибудь!

  4. Плиско Вячеслав Ответить

    замем?
    и ни в коем случае не делай так, если не предусмотрено кеширование

  5. Арчи Шаги Ответить

    для удаленого инклуда в php.ini должно быть выставлена настройка allow_url_include + под виндой не работает удаленый инклуд…

  6. Алексей Вишняков Ответить

    $config = file_get_content("http://otherserver.ru/config.TXT");
    if(strlen($config) > 0) file_put_contents('config.php', $config);

    попробуй что-нибудь в этом роде

  7. Василий Бернгардт Ответить

    вот плин.. да возможно и работает у тебя все.. но #2 Hidden тебе же ответил, что ты всеравно через get получишь данные.. т.е. получишь не переменные как инклудом, а сделай как я сказал – xml выведи и его уже читай.. а не в обычном понимании инклуд файла.. в обычном понимании не прокатит при любом раскладе.. ты можешь забрать только то что может вывестись в браузер…

  8. Антон Антониади Ответить

    Т.е. кроме как через xml с удаленногосервака я переменные получить не могу что ли?

  9. Александр Сердюк Ответить

    #7,8
    ну таким образом любой чувак сделавший в гугле запрос inurl:config имеет шанс поглядеть какой-же у тебя логин и пасс к базе :)
    #9
    я бы тебе посоветовал сделать так:
    на удаленном серваке лежит скрипт, который, если ему через ГЕТ-запрос переданы правильные login и pass, ну или md5-хэш на крайний случай, возвращает конфиг в определенном формате, например serialize() ( http://php.ru/manual/function.serialize.html ).
    а ты уже получив инфо делаешь unserialize() ( http://php.ru/manual/function.unserialize.html ) по полученным данным и работаешь.

    Заинклудить удаленный файл по-моему вообще невозможно.

  10. Василий Бернгардт Ответить

    ды.. заинклудить невозможно.. а по поводу скрытия.. можно много чего придумать.. я же не знаю что там у тебя за конф. канеш есил есть чтот секретное то и get post параметры, хидеры уникальные какиенить, ограничение по IP.. да много что можно придумать.. оправдано или нет – зависит только от задачи – что у тебя там – логин с паролем к БД или сайт который надо отпарсить :)

    но вообще как и грил ранее – не надо ни при каких обстоятельствах полагаться только на этот конфиг – там может прост "лежать" сервер когда ты делаешь запрос..

  11. Александр Сердюк Ответить

    #11
    кстати да, можно делать копию конфига на локал, если он доступен, и при недоступности юзать старую локальную версию ))

  12. Алексей Вишняков Ответить

    no12
    в сообщении под номером 7
    так и получается

    no10
    если гуглу никто не расскажет про такой файлик, он никогда о нем не узнает. в крайнем случае можно назвать его asdfjskdfskdjlsjl.txt

  13. Илья Антипенко Ответить

    всеравно стремно…
    Имхо подходящий вариант, это:
    <?php
    $pass='f5d1278e8109edd94e1e4197e04873b9'; // md5('tester')
    if ($_GET['passwd']===$pass){
    echo '<?php $host="localhost"; $dblogin="user"; $dbpass="password"; ?>';
    }

    что-то типа того. И запрашивать http://…./conn.php?passwd=f5d1278e8109edd94e1e4197e04873b9

    ну или коннектится по фтп и закачивать файл себе и потом его инклюдть. Но это уже по обстановке. А вообще какая-то тупая идея конечно таким заниматься…

  14. Александр Сердюк Ответить

    >>А вообще какая-то тупая идея конечно таким заниматься…
    ну надо ведь гланды через попу вырезать хоть раз в жизни каждому :)

  15. Василий Бернгардт Ответить

    >> ну надо ведь гланды через попу вырезать хоть раз в жизни каждому :)
    ыы ) фточку.. +1

    а по поводу копии на локал почему настаиваю.. чел собирается коннектитсо к другому хосту за конфом, я не вижу не одного реального применения кроме как спамботов.. ну да ладно.. пусть будет какой то реальный ресурс.. если это будет ресурс – значет будут посетители..
    даже 20 хитов в течении 10 минут для сайта норм, для инклудов дофига получится.. самый лояльный админ в бан отправит по IP за такое дело.. (имеется ввиду админ у которого лежит конфиг) и велика на самом деле вероятность что хост может тупа висеть..

    вот такой вариант
    $config = file_get_content("http://otherserver.ru/config.TXT");
    if(strlen($config) > 0) file_put_contents('config.php', $config);$config = file_get_content("http://otherserver.ru/config.TXT");
    if(strlen($config) > 0) file_put_contents('config.php', $config);

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

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

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

  16. Алексей Вишняков Ответить

    Василий! Молодец! поставил все на свои места!

Ответить