PHP 在页面加载时更新变量

PHP update variable on page load

我正在制作一个显示您的 WLAN IP 地址的基本页面, 我有一个 index.php 作为登录页面和一个 index.php 所需的 index.php 我遇到的问题是该页面将显示最后保存的 ip,而不是你的,直到页面被刷新。我已经尝试过没有缓存并且过期但没有用。 我的问题是..我怎样才能使 php 变量在页面加载时被拉动,而不仅仅是在刷新时.. 谢谢。

这是我的 index.php:

 <?php
  require "getip.php";
  $ip = getip();
  ?>

然后只是:

<p style="text-align: center; color:white;">
 Your IP address is 
<span style="color:red;"> 
<?php
  echo $ip;
?>
</span>
</p>

和我的 getip.php:

<?php

function getip() {
    $ipaddress = '';
        if (getenv('HTTP_CLIENT_IP'))
            $ipaddress = getenv('HTTP_CLIENT_IP');
        else if(getenv('HTTP_X_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
        else if(getenv('HTTP_X_FORWARDED'))
            $ipaddress = getenv('HTTP_X_FORWARDED');
        else if(getenv('HTTP_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_FORWARDED_FOR');
        else if(getenv('HTTP_FORWARDED'))
            $ipaddress = getenv('HTTP_FORWARDED');
        else if(getenv('REMOTE_ADDR'))
            $ipaddress = getenv('REMOTE_ADDR');
        else
            $ipaddress = 'UNKNOWN';

        return $ipaddress;
         }?>

您上面提到的问题是 php 网络服务器的正常行为。除非有触发器获取新 IP,否则您如何期望 php 函数为您提供新 IP??

您更改IP地址后没有立即获得新的IP地址是由于以下事实::

  1. PHP 是服务器端脚本,这在某种程度上意味着只有在页面重新加载后才会执行这些操作。
  2. 由于您没有任何重新加载页面的方法,您无法立即获得新的 IP 地址。
  3. 您将在页面刷新后获得新的 ip,因为函数 getip() 在您重新加载生成当前 ip 的页面时被调用。即您通过刷新页面手动触发该功能。

您可能想尝试的东西很少::

  1. 使用 html 标签以一定的时间间隔刷新您的页面。
  2. 使用php connection handling,是个很有趣的话题。
  3. 使用手动触发按钮点击来调用 getip() 并显示新的 ip。