页面加载时PHP更新变量

时间:2017-02-19 06:20:41

标签: php variables onload

我正在制作一个显示您的WLAN IP地址的基本页面, 我有一个index.php作为登陆页面和index.php所需的getip.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;
         }?>

1 个答案:

答案 0 :(得分:3)

你上面提到的问题是php web服务器的正常行为。你怎么期望php函数给你新的ip,除非有触发器来获取新的?

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

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

    1. 使用html标记在特定时间间隔刷新页面。
    2. 使用php connection handling,这是一个非常有趣的主题。
    3. 使用手动触发器作为按钮单击以调用getip()并显示新的IP。