获取访问者IP地址的脚本无效

时间:2011-12-27 13:18:55

标签: php mysql http ip-address

我使用php myadmin手动将以下行存储在mysql数据库中。

<div>IP address : '<?php echo $_SERVER['REMOTE_ADDR']?>'</div>

它已更新,因为我已确认它在数据库中。 我的php页面从数据库中获取并更新了html。

我得到的输出是 -
IP address :

我不是php的专家。另外我不能写&lt;?php echo $ _SERVER ['REMOTE_ADDR']?&gt;直接进入我的php页面。请帮忙告诉我哪里出错了。

2 个答案:

答案 0 :(得分:3)

当您从数据库中获取文本并将其输出到客户端时,它将只是书写,而不是执行 - 所以

$_SERVER['REMOTE_ADDR']

永远不会被真正的IP地址取代。

解决方案是存储

<div>IP address : '%s'</div> 

在您的数据库中,稍后获取它并

echo sprintf($txtfromdb,$_SERVER['REMOTE_ADDR'])

给你的客户。

答案 1 :(得分:1)

您不应将变量名称存储在数据库中。因为它们的内容不会被保存,只有它的名称。

如果您希望显示当前客户端IP,则可以(对于要执行的每个php内容)进行评估。

ob_start();
eval( $the_table_content );
$the_content = ob_get_clean();

现在您的正确内容存储在$the_content中,例如可以echo $the_content输出

但是,如果您只想输出它,则不需要上述代码,只能尝试eval( $the_table_content )代替echo $the_table_content

更好的解决方案通常是Eugen Riecks,但在少数情况下,这是最快和最简单的。