是否有任何原因会使用$wpdn->Insert将1(我的)IP添加到此表中?

时间:2018-06-09 作者:user8792133

我正在使用一个小型自定义插件在数据库中创建一个表,然后如果存在某个cookie,则将用户的IP地址添加到该表中(此cookie通过单击术语接受按钮在其他地方设置)。测试时,我能够让我的IP显示在表中,但我尝试在我的移动设备上测试并使用Browserstack,表中显示的唯一IP仍然是我自己的。有什么原因会发生这种情况吗?插件代码如下:

global $wpdb;
$table_name = $wpdb->prefix.\'table_name_here\';

 if ($wpdb->get_var("SHOW TABLES LIKE \'$table_name\'") != $table_name) {
     //table not in database. Create new table
     $charset_collate = $wpdb->get_charset_collate();

     $sql = "CREATE TABLE $table_name (
            ip VARCHAR(100) NOT NULL,
            UNIQUE (ip)
     ) $charset_collate;";
     require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
    dbDelta( $sql );
}
else {
}

/*
 * Add IP to Table
 */

if ( isset( $_COOKIE[\'cookie_name_here\']  ) ) { 
    $ip = $_SERVER[\'REMOTE_ADDR\'];
    $wpdb->insert( 
        $table_name, 
        array( 
            \'ip\' => $ip
        )
   );
} 

1 个回复
SO网友:Abdussamad

您是否在多个设备上使用相同的internet连接?也许您的手机连接到了同一个wifi网络。参观http://icanhazip.com 在手机中查看其IP。至于browserstack,可能他们不接受cookie,因此他们的IP不会被记录。您还应该记录时间戳,以便在测试期间将其与访问关联起来。

此外,您应该在插件激活期间创建表,而不是在每次脚本执行时不必要地检查表。Here\'s 你可以用的钩子。

结束

相关推荐

Geoip shortcodes in comments

我想知道如何从geoip插件添加国家/地区短代码(https://pl.wordpress.org/plugins/geoip-detect/) 输入注释字段。[geoip\\u detect2 property=“country”]据我所知,注释字段必须是所见即所得字段(默认情况下不是文本)。还有其他方法吗?通过自定义php函数或其他方式?你好,Michal