Страница 8 из 10

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 13 ноя 2012, 15:52
endloz
Nick Lisogor писал(а):Для тех, у кого не работает file_get_contents() используйте curl() + он безопаснее.
КАК? Подскажите, пожалуйста! Весь инет перерыл, толком не нашел. Только начинаю изучать PHP.
file_get_contents - запрещен на сервере: "allow_url_fopen Off", а вот cURL - "cURL support enabled".
Мне всего-то необходимо получить имя, фамилию и путь к аватарке пользователя, пусть даже в формате json. Буду очень признателен вам, за конкретный пример! Спасибо заранее!

:oops: Прошу прощения - уже сам понял как: просто в файле класса создал свою функцию file_get_contents (изменив имя), а в ней проделываю действия через cURL.

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 13 ноя 2012, 16:58
endloz
:cry: только вместо результатов пустота. совсем ничего... В чем может быть причина?

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 13 ноя 2012, 22:31
dimaqwerty
ничего не выводиться пустая страница

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 13 ноя 2012, 23:44
dimaqwerty
dimaqwerty писал(а):ничего не выводиться пустая страница
У меня так было потому что я использовал app id desktop приложения. Потом я поменял в настройках на app id клентского при ложения "подключённого сайта" и все заработало

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 14 ноя 2012, 06:15
endloz
dimaqwerty писал(а):
dimaqwerty писал(а):ничего не выводиться пустая страница
У меня так было потому что я использовал app id desktop приложения. Потом я поменял в настройках на app id клентского при ложения "подключённого сайта" и все заработало
Спасибо Вам за ответ. Только я не до конца понял где искать то или иное app id. У меня есть в настройках самого приложения (в самом контакте) - id приложения, собственно которое я и использую.

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 14 ноя 2012, 14:41
Александр
endloz писал(а): только вместо результатов пустота. совсем ничего... В чем может быть причина?
Запрос точно происходит? Функция с curl написана правильно? Что возвращает сервер api?

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 14 ноя 2012, 15:17
endloz

Код: Выделить всё

$ch = curl_init();curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_URL, $query);$res = curl_exec($ch);curl_close($ch);//$res = file_get_contents($query);return json_decode($res, true);
Листинг из редактированного мною vkapi.class.php
Приходит пустота. Ни ошибок, ничего. access_token, как я понимаю получать не надо, ибо данные прекрасно передаются без него, если пройти просто по ссылке https://api.vkontakte.ru/method/users.get?uids=ЛЮБОЙ_ID&fields=photo. Тогда решение сводится к минимуму - как отправить запрос чтобы получить ответ в переменную в формате json (как это получает браузер). Повторюсь - я новичек и только начинаю понимать что к чему. Ранее имел опыт в программировании (Basic, Pascal/Delphi, C++). Сейчас изучаю все прелести PHP + MySQL.
С учетом того, что на моем хосте отключена возможность использования ф-ии file_get_contents, а ее обход путем создания в папке .htaccess не дает результатов (хост блочит), то есть возможность это сделать через cURL, проверка работоспособности которого прошла успешно.
Спасибо.

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 14 ноя 2012, 15:45
Александр
endloz

Код: Выделить всё

$ch = curl_init();curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_URL, $query);$res = curl_exec($ch);curl_close($ch);//$res = file_get_contents($query);echo $query.'<br />';echo $res.'<br />';//return json_decode($res, true);
Что выводит? Curl точно работает на сервере?

Проверка поддержки cURL на вашем хостинге

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 14 ноя 2012, 17:16
endloz
Александр писал(а):endloz
Что выводит? Curl точно работает на сервере?

Проверка поддержки cURL на вашем хостинге

Код: Выделить всё

<?php$url = 'http://www.google.ru/';  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_TIMEOUT, 10);$page = curl_exec ($ch);curl_close($ch);  echo $page;  ?>
Содержимое curl.php на хосте. Открывает гугл без проблем, но без главной картинки "Google Россия" над поисковой строкой запроса.
Изображение

При попытке же обратится к методам вк ничего не выводит. При просмотре исходного кода фрейма видно только несколько тегов <br />.

После каких-то манипуляций (тырканий кода по разным адресам flapps.ru, yandex.ru, google.ru, http://www.api.vkontakte.......) в выше указанном коде, наконец-то начала выводится информация без кодировки:
Изображение
Правда через контакт все равно не работает ничего - пустой белый фрейм с кодом, содержащим несколько <br />

Re: Вызов серверных методов (APIServerPHPClass)

Добавлено: 14 ноя 2012, 17:34
Александр
endloz
То есть и $query не выводит? Так если эта переменная пустая, то запрос и не выполнится...