2010-01-26 4 views
1

Я пытаюсь заменить RSS-опрос PubSubHubbub на моем сайте. Я могу использовать библиотеку подписчиков, которую Google предлагает отправить запрос на подписку. Из кода похоже, что он отправляет почтовый запрос через cURL с URL-адресом RSS и URL-адресом обратного вызова.Получение и обработка запроса GET в PHP

Так вот где мне нужно какое-то направление:

Для выполнения запроса на подписку мой обратный вызов URL должен получить запрос GET, а затем эхо обратно значение из запроса GET вместе с 200 ответа. Как получить параметры из запроса GET? Повторяется ли эхо через cURL? Если да, то какой вариант должен включать ответ 200?

ответ

2

Я не уверен, что мне не хватает точки, но это очень простой скрипт?

<?php 

    echo $_GET["request_name"]; 

?> 

это будет выводить параметр request_name GET и (неявно) отправить 200.

+0

Это было первое, что я пробовал. Запрос GET предполагает включение параметра «hub.challenge». Поэтому я использовал $ _GET и попытался записать значение в txt-файл. Я также добавил строку, и она достигает обратного вызова, поскольку она показывает строку в файле txt, но не значение из параметра, используя $ _GET. –

+0

$ request = $ _GET ['hub.challenge']; fh = fopen ('test.txt,' a ') или die ("невозможно открыть файл"); fwrite ($ fh, 'Test:'. $ Request); fclose ($ fh); –

+0

Хм. Это выглядит o.k. и определенно должен выводить параметр GET этого имени. Точка в имени переменной также не должна быть проблемой. Можете ли вы сначала подтвердить, что ваш скрипт вызывается с параметром, например, проверяя журналы доступа? Какова ваша версия PHP? –

1

Был недавно поток на PHP-DEV список рассылки об этом. Причина, по которой вы не можете получить доступ к «hub.challenge» в суперглобальном файле $ _GET, связана с register_globals. В основном PHP очищает любые имена аргументов перед созданием суперглобалов. Любые точки будут преобразованы в символы подчеркивания. Он выглядит «исправленным» на PHP 6, но не раньше, чем из-за проблем с BC.

Here's the thread about it.