我使用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页面。请帮忙告诉我哪里出错了。
答案 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,但在少数情况下,这是最快和最简单的。