[英]User ip's are not getting logged
嗨,我的网站config.php
和log_user_ips.php
有2个文件。
我在将用户IP数据插入数据库时遇到麻烦。
我的数据库包含IPS
表。
config.php :
<?php require_once("path/to/base/ip_user_logs.php"); fSaveIPUserLog(); ?>
ip_user_logs.php :
<?php
function fSaveIPUserLog() {
return;
$check = mysql_query("SELECT id FROM ips WHERE ip = '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."' LIMIT 1") or die(mysql_error());
if (mysql_num_rows($check) > 0):
$check_fetched = mysql_fetch_array($check);
$id = (int)$check_fetched['id'];
else:
mysql_query("INSERT INTO ips SET ip = '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."'") or die(mysql_error());
$id = (int)mysql_insert_id();
endif;
mysql_free_result($check);
mysql_query("UPDATE ips SET
times = times + 1,
host = '".mysql_real_escape_string(gethostbyaddr($_SERVER['REMOTE_ADDR']))."',
agent = '".mysql_real_escape_string($_SERVER['HTTP_USER_AGENT'])."',
script = CONCAT(script, '".mysql_real_escape_string("\n".date('Y-m-d H:i:s').' '.$_SERVER['SCRIPT_NAME'].((count($_GET))? '?'.http_build_query($_GET): ''))."'),
username = IF('".mysql_escape_string($_SESSION[SESSION_PREFIX.'user']['username'])."' != '', '".mysql_escape_string($_SESSION[SESSION_PREFIX.'user']['username'])."', username),
date = NOW()
WHERE id = '$id' LIMIT 1") or die(mysql_error());
return;
}
?>
您说您的文件是log_user_ips.php
,但是您包含ip_user_logs.php
...是问题吗?
另外,在fSaveIPUserLog()
定义之后,您直接具有return
语句,因此该函数将不执行任何操作。
看起来在您定义fSaveIPUserLog()
函数之后立即有一个return语句。 这将在函数主体中的任何其他代码运行之前退出该函数。
你有return;
不会运行您也在使用的function fSaveIPUserLog()
语句。 现在也鼓励使用mysqli而不是mysql。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.