До 2-х обращений по php-файлам устаревают ответы - PullRequest
0 голосов
/ 26 июня 2018

Если я вызываю файл PHP более 2 раз (в третий раз), я получаю старый ответ.

Мой PHP-файл выглядит так:

<?php
error_reporting(0);
clearstatcache();

$ip = $_GET['ip'];
$port = 80; 
$waitTimeoutInSeconds = 1; 

        if($fp = fsockopen($ip,$port,$waitTimeoutInSeconds)){   
           echo "<span style='color:green;'>OK: " . $ip. "</span>";
        } else {
           echo "<span style='color:red;  '>ERROR: " . $ip. "</span>"; 
        }

?>

Я даю сценарию IP-адрес поверх переменной GET, затем он отправляет эхо-запрос на хост.

Ответ на второй звонок в течение 2 секунд отвечает правильным, до 3-го звонка я получу старые ответы.

Я пытался исправить это с помощью clearstatcache();, но без изменений.

Вот скриншот с экзаменом:

Screenshot

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Решение:

Я добавил cacherule в IIS в:

- IIS Manager
- Webserver
- Output caching
- new rule: .php - > No caching
0 голосов
/ 26 июня 2018

Я не думаю, что это старый ответ, а просто ошибка от fsockopen. Также, возможно, произвольно, сколько вызовов требуется, чтобы вернуть ошибку. Возможно, брандмауэр блокирует слишком много попыток подключения к вашей цели, или, возможно, хост просто не может справиться с нагрузкой.

Попробуйте увеличить время ожидания до 2 и немного подождать, прежде чем нажать кнопку обновления.

Если вы включите error_reporting (E_ALL), вы, вероятно, увидите более приятное сообщение об ошибке.

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