Check if a user already voted

时间:2015-08-02 作者:inverted_index

我正在写一个Wordpress投票系统。我需要检查用户是否已经投票,向他/她显示消息。但我不知道该怎么做!我的解决方案之一是创建一个表(命名为wp\\u选民),并输入每个用户的ip和投票id。

$user_ip = $_SERVER[\'REMOTE_ADDR\'];
但这并没有真正起作用。对于单个用户,它分配两个或多个ip地址。我如何处理这个问题?谢谢

1 个回复
最合适的回答,由SO网友:Mohammad Mursaleen 整理而成

在中为此类功能创建表WordPress 这不是一个有效的举措。我更愿意使用以下方法来实现这一点。

创建Custom post type 为您的选民提供信息。为此,您可以尝试Generate WP post type generator.

当用户访问您的网站时;在中保存IP和等级post meta 使用wp insert postadd_post_meta. 这样,您也可以在后端查看列表。

每次用户访问您的站点时,请检查是否有用户使用该IPWP Query. 如果存在,则无需添加信息,否则使用步骤2添加他的信息。

这里有一个简单的函数可以获取用户的ip;

function get_the_user_ip() {

    if ( ! empty( $_SERVER[\'HTTP_CLIENT_IP\'] ) ) {
    //check ip from share internet
    $ip = $_SERVER[\'HTTP_CLIENT_IP\'];
    } elseif ( ! empty( $_SERVER[\'HTTP_X_FORWARDED_FOR\'] ) ) {
    //to check ip is pass from proxy
    $ip = $_SERVER[\'HTTP_X_FORWARDED_FOR\'];
    } else {
    $ip = $_SERVER[\'REMOTE_ADDR\'];
    }

    return $ip;

} 
希望这对你有用。

结束