0

こんにちは、私のサイトには 2 つのファイルがconfig.phpありlog_user_ips.phpます。

ユーザー IP データをデータベースに挿入できません。

私のDBには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;
}
?>
4

3 に答える 3

1

あなたのファイルはlog_user_ips.phpであると言っていますが、含まれているのはip_user_logs.php... それが問題ですか?

またreturn、 の定義の直後にステートメントがfSaveIPUserLog()あるため、その関数は何もしません。

于 2012-07-01T04:22:26.090 に答える
1

関数の定義の直後に return ステートメントがあるようですfSaveIPUserLog()。これにより、関数本体の他のコードが実行される前に関数が終了します。

于 2012-07-01T04:22:39.130 に答える
1

あなたも使用しているreturn;実行しないステートメントがあります。function fSaveIPUserLog()また、 mysql ではなくmysqliの使用が推奨されるようになりました。

于 2012-07-01T05:50:33.487 に答える