Есть ссылка на сайт, перейдя по которой на сайте выполняется определенное действие. На этот сайт открыт доступ только некоторым ip (моему серверу) и моему браузеру. Если перейти по ссылке - выдаст json ответ и выполнится определенное действие на сайте (обнуление статистики).
Я хочу сделать возможность для пользователей выполнять это действие. Просто разрешить им переход по ссылке нельзя (у всех ip разный), тогда я решил сделать чтобы просто выполнялся запрос (cURL), с ip сервера на ссылку.
Запрос выполняется, пользователь получает json ответ, но на сайте сброс статистики не происходит.
Код которым делаю запрос к сайту
shell_exec('curl -s --digest -u логин:пароль http://сайт.ру/api.json?action=resetstats');
Что я делаю не так? как сделать правильно?
Судя по вашим словам - то ошибка где-то в логике сброса, т.к. ответ в JSON же приходит, ну или это мистика :).
Для начала попробуйте сделать запроса через php curl, а не через shell_exec, и посмотрите что приходит в $resp
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://сайт.ру/api.json?action=resetstats');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, 'логин:пароль');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$resp = curl_exec($ch);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты