Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

vladisslav
Статус: 5-й класс
Рейтинг: 628
∙ повысить рейтинг »
Nicolacha
Статус: 5-й класс
Рейтинг: 169
∙ повысить рейтинг »
Волков Алексей
Статус: 5-й класс
Рейтинг: 149
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / PHP

Номер выпуска:1168
Дата выхода:19.10.2009, 00:00
Администратор рассылки:Товарищ Бородин, Академик
Подписчиков / экспертов:628 / 183
Вопросов / ответов:1 / 2
IRC-канал по теме:#php

Вопрос № 173235: Уважаемые эксперты, есть ли способ задать следующий сценарий на php: на страничке имеется ссылка на ресурс, который из-за технических неполадок не всегда доступен, но отслеживать это не всегда получается, соответственно, хотелось бы, чтобы сце...



Вопрос № 173235:

Уважаемые эксперты,

есть ли способ задать следующий сценарий на php: на страничке имеется ссылка на ресурс, который из-за технических неполадок не всегда доступен, но отслеживать это не всегда получается, соответственно, хотелось бы, чтобы сценарий при клике на ссылку проверял, работает ли ресурс в данный момент, а если не работает, то чтобы направлял на зеркало.
Т.е.: если http://www.genling.nw.ru открывается, то пусть пользователь идёт туда, а если не открывается, то пусть идёт на http://www.genlingnw.ru

Заранее спасибо.

Отправлен: 13.10.2009, 10:57
Вопрос задал: Anjali, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает Александр Грималовский, 3-й класс :
Здравствуйте, Anjali.

Это можно реализовать через использование промежуточного скрипта который будет проверять доступность удаленного ресурса и решать куда в действительности производить перенаправление. При этом, правда, придется пожертвовать "прямой" ссылкой на удаленный ресурс либо использовать JavaScript.

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

Пример того как может выглядеть скрипт перенаправления - в приложении.

Приложение:

Ответ отправил: Александр Грималовский, 3-й класс
Ответ отправлен: 13.10.2009, 11:27

Оценка ответа: 5

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 255365 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Волков Алексей, 5-й класс :
    Здравствуйте, Anjali.
    вот функция, проверяющая ссылку:
    <?php
    function check_url($url) {
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, $url);
    curl_setopt($c, CURLOPT_HEADER, 1); // get the header
    curl_setopt($c, CURLOPT_NOBODY, 1); // and *only* get the header
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); // get the response as a string from curl_exec(), rather than echoing it
    curl_setopt($c, CURLOPT_FRESH_CONNECT, 1); // don't use a cached version of the url
    if (!curl_exec($c)) { return false; }

    $httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE);
    return ($httpcode < 400);
    }
    ?>

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

    Пример кода в приложении

    Приложение:

    -----
    Всё, что есть хорошего в жизни - либо незаконно, либо аморально, либо ведёт к ожирению...

    Ответ отправил: Волков Алексей, 5-й класс
    Ответ отправлен: 13.10.2009, 11:51

    Оценка ответа: 5
    Комментарий к оценке:
    Такое решение показалось наиболее оптимальным и более понятным.

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 255367 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.9 от 25.09.2009

    В избранное