侦测到IP位址,但发生致命错误

时间:2019-04-30 10:24:29

标签: php

我能够在本地主机上获得机器的IP地址。 但是发生了致命错误。

我尝试了很多次,但无法解决。

<?php 
    function getclientip() 
    {

       if(!empty($_SERVER['HTTP_CLIENT_IP']))
       {
         //ip from share internet
         $ip = $_SERVER['HTTP_CLIENT_IP'];
       }
       elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
       {
         //ip pass from proxy
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
       }
       else
       {
         $ip = $_SERVER['REMOTE_ADDR'];
       }

      return $ip;
    }

      echo 'User Real IP - '.getclientip();
?>

有人能帮助我减少此错误吗?

  

致命错误:无法重新声明getclientip()(先前在   Z:\ xampp \ htdocs \ Mysite \ function.php:4)在   第19行的Z:\ xampp \ htdocs \ Mysite \ function.php

1 个答案:

答案 0 :(得分:3)

函数getclientip()已在第4行的function.php中定义为错误消息状态。

可以采用三种解决方案来解决此问题:

1)使用现有功能:使用现有功能而不是编写新功能。

2)使用不同的名称编写新功能:如果新功能的用途不同,请使用其他名称。  例如getclientipaddress()

3)仅在没有相同名称的功能时定义功能:编写功能并仅在不存在具有相同名称的功能时才允许执行。

有一个PHP函数:function_exists(),用于检查是否已经定义了相同名称的函数。

因此,如果已定义函数,则可以避免出现致命错误。

检查功能是否存在的代码:

if (! function_exists('getclientip')) {
 function getclientip() {
 }
}