PHP определить, кто открыл страницу - PullRequest
2 голосов
/ 24 декабря 2010

Я погуглил этот вопрос и не смог найти ответ.

У меня есть страница, сгенерированная PHP, которая генерирует строку JSON, которую я использую javascript / jQuery / AJAX для ее получения.

Я хотел бы, чтобы сообщение появлялось, если пользователь открывает эту внутреннюю страницу напрямую через PHP, но при получении AJAX оно все равно работает как обычно.

Возможно ли это в PHP и на что я буду обращать внимание, чтобы сделать это?

Ответы [ 2 ]

5 голосов
/ 24 декабря 2010

Конечно, просто проверьте заголовки, чтобы увидеть, как это было запрошено:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'))
{
    /* Do something with the AJAX request */
}
else
{
    /* Do something else */
}

Просто убедитесь, что ваш сервер поддерживает HTTP_X_REQUESTED_WITH.Не все так делают, хотя, как я знаю, Apache 2 знает.

1 голос
/ 24 декабря 2010

Используйте nonce , чтобы отслеживать, откуда поступил запрос.

Сами браузеры не обязаны (и не AFAIK) идентифицировать запрос AJAX по-другому, чем другие запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...