@bighoc
php/javascript developer

Как неявно зайти по ссылке с помощью PHP?

Мне нужно что бы мой скрипт пошёл по ссылке test/test.php?test=test.
Суть в том что если зайти по этому URL запустить необходимый код. Мне нужно что бы этот код отрабатал, что бы сервер сам себя запросил. Но не явно. Браузер не должен идти по ссылке.

Обьясню ещё раз. Мне не нужен ответ севрера. Мне нужно что бы скрипт запустился и отработал. Запускается он при условии test/test.php?test=test такого урла.

Скажем я жму на ссылку в меню. И между тем как я перейду по этой ссылке PHP должен зайти на прописанный заранее урл (тем самым запустив скрипт ( ЧТО МНЕ И НУЖНО)) не показывая этого в браузер и после этого выдать как ни в чем не бывало страницу на которую ведёт кнопка меню.
  • Вопрос задан
  • 2342 просмотра
Пригласить эксперта
Ответы на вопрос 4
viktorvsk
@viktorvsk
Хотя желаемый сценарий в корне не верен, но попробуйте послать запрос аяксом и просто забить на ответ.
Но тут проблема в том, что если процесс там у вас долгий, то аякс будет висеть и висеть. Но как только вы обрубите аякс, процесс пхп скорее всего сам умрет.

Еще есть вариант, при нажатии на кнопку создать элмент img средствами js, и дать ему src test/test.php?test=test но и, возможно, сделать это после того, как страница перезагрузится по нажатию. Но тут тоже нет 100% гарантии результата

Если хоть немного сделать эту идею вменяемой, то код test/test.php?test=test должен запускать скрипт в ОС, который начнет в фоне выполнять нужный вам код в отдельном процессе, а вам сразу же вернет true, null и т.д.

Но, еще раз, это всё дикий костыль. Как и сама идея. Лучше опишите нормально задачу и не пробуйте шпионить за юзером, укрывать какой-то контент и т.д. :)
Ответ написан
Комментировать
OlegLazarenko
@OlegLazarenko
<a href="//ya.ru/" onclick="document.getElementById('getUrl').src = 'test/test.php?test=test';">Ссылка</a>
<iframe id="getUrl" src=""></iframe>


Зарос будет совершать не сервер (php), а клиент. Если по какой-то причине принципиально что бы запрос шел именно от сервера, то нужно в приведенном выше коде менять src фрейма на промежуточный скрипт, который будет запрашивать конечный, требуемый скрипт (test/test.php?test=test)
Ответ написан
Sivkoff
@Sivkoff
Web Developer
В контроллере создаете задание для CRONa на выполнение необходимого скрипта, например через 1 секунду, а затем спокойно отдаете необходимый контент. Я бы для демона порекомендовал конечно Node.js, но похоже вам нужен именно PHP, поэтому не буду.
Ответ написан
Комментировать
LestaD
@LestaD
Веб разработчик
На самом деле можно перейти по урлу из php Оч просто.
Правда не передаются ни куки ни сессии:
file_get_contents("http://site.com/my/file.php?a=1");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы