示例#1
0
function vote_poll()
{
    global $wpdb, $user_identity, $user_ID;
    if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'polls') {
        // Load Headers
        polls_textdomain();
        header('Content-Type: text/html; charset=' . get_option('blog_charset') . '');
        // Get Poll ID
        $poll_id = isset($_REQUEST['poll_id']) ? intval($_REQUEST['poll_id']) : 0;
        // Ensure Poll ID Is Valid
        if ($poll_id == 0) {
            _e('Invalid Poll ID', 'wp-polls');
            exit;
        }
        // Verify Referer
        if (!check_ajax_referer('poll_' . $poll_id . '-nonce', 'poll_' . $poll_id . '_nonce', false)) {
            _e('Failed To Verify Referrer', 'wp-polls');
            exit;
        }
        // Which View
        switch ($_REQUEST['view']) {
            // Poll Vote
            case 'process':
                $poll_aid = $_POST["poll_{$poll_id}"];
                $poll_aid_array = array_unique(array_map('intval', explode(',', $poll_aid)));
                if ($poll_id > 0 && !empty($poll_aid_array) && check_allowtovote()) {
                    $check_voted = check_voted($poll_id);
                    if ($check_voted == 0) {
                        if (!empty($user_identity)) {
                            $pollip_user = htmlspecialchars(addslashes($user_identity));
                        } elseif (!empty($_COOKIE['comment_author_' . COOKIEHASH])) {
                            $pollip_user = htmlspecialchars(addslashes($_COOKIE['comment_author_' . COOKIEHASH]));
                        } else {
                            $pollip_user = __('Guest', 'wp-polls');
                        }
                        $pollip_userid = intval($user_ID);
                        $pollip_ip = get_ipaddress();
                        $pollip_host = esc_attr(@gethostbyaddr($pollip_ip));
                        $pollip_timestamp = current_time('timestamp');
                        // Only Create Cookie If User Choose Logging Method 1 Or 2
                        $poll_logging_method = intval(get_option('poll_logging_method'));
                        if ($poll_logging_method == 1 || $poll_logging_method == 3) {
                            $cookie_expiry = intval(get_option('poll_cookielog_expiry'));
                            if ($cookie_expiry == 0) {
                                $cookie_expiry = 30000000;
                            }
                            $vote_cookie = setcookie('voted_' . $poll_id, $poll_aid, $pollip_timestamp + $cookie_expiry, COOKIEPATH);
                        }
                        $i = 0;
                        foreach ($poll_aid_array as $polla_aid) {
                            $update_polla_votes = $wpdb->query("UPDATE {$wpdb->pollsa} SET polla_votes = (polla_votes+1) WHERE polla_qid = {$poll_id} AND polla_aid = {$polla_aid}");
                            if (!$update_polla_votes) {
                                unset($poll_aid_array[$i]);
                            }
                            $i++;
                        }
                        $vote_q = $wpdb->query("UPDATE {$wpdb->pollsq} SET pollq_totalvotes = (pollq_totalvotes+" . sizeof($poll_aid_array) . "), pollq_totalvoters = (pollq_totalvoters+1) WHERE pollq_id = {$poll_id} AND pollq_active = 1");
                        if ($vote_q) {
                            foreach ($poll_aid_array as $polla_aid) {
                                $wpdb->query("INSERT INTO {$wpdb->pollsip} VALUES (0, {$poll_id}, {$polla_aid}, '{$pollip_ip}', '{$pollip_host}', '{$pollip_timestamp}', '{$pollip_user}', {$pollip_userid})");
                            }
                            echo display_pollresult($poll_id, $poll_aid_array, false);
                        } else {
                            printf(__('Unable To Update Poll Total Votes And Poll Total Voters. Poll ID #%s', 'wp-polls'), $poll_id);
                        }
                        // End if($vote_a)
                    } else {
                        printf(__('You Had Already Voted For This Poll. Poll ID #%s', 'wp-polls'), $poll_id);
                    }
                    // End if($check_voted)
                } else {
                    printf(__('Invalid Poll ID. Poll ID #%s', 'wp-polls'), $poll_id);
                }
                // End if($poll_id > 0 && !empty($poll_aid_array) && check_allowtovote())
                break;
                // Poll Result
            // Poll Result
            case 'result':
                echo display_pollresult($poll_id, 0, false);
                break;
                // Poll Booth Aka Poll Voting Form
            // Poll Booth Aka Poll Voting Form
            case 'booth':
                echo display_pollvote($poll_id, false);
                break;
        }
        // End switch($_REQUEST['view'])
    }
    // End if(isset($_REQUEST['action']) && $_REQUEST['action'] == 'polls')
    exit;
}
示例#2
0
function vote_poll()
{
    global $wpdb, $user_identity, $user_ID;
    if (!empty($_POST['vote'])) {
        polls_textdomain();
        header('Content-Type: text/html; charset=' . get_option('blog_charset') . '');
        $poll_id = intval($_POST['poll_id']);
        $poll_aid = $_POST["poll_{$poll_id}"];
        $poll_aid_array = explode(',', $poll_aid);
        if ($poll_id > 0 && !empty($poll_aid_array) && check_allowtovote()) {
            $check_voted = check_voted($poll_id);
            if ($check_voted == 0) {
                if (!empty($user_identity)) {
                    $pollip_user = addslashes($user_identity);
                } elseif (!empty($_COOKIE['comment_author_' . COOKIEHASH])) {
                    $pollip_user = addslashes($_COOKIE['comment_author_' . COOKIEHASH]);
                } else {
                    $pollip_user = __('Guest', 'wp-polls');
                }
                $pollip_userid = intval($user_ID);
                $pollip_ip = get_ipaddress();
                $pollip_host = @gethostbyaddr($pollip_ip);
                $pollip_timestamp = current_time('timestamp');
                // Only Create Cookie If User Choose Logging Method 1 Or 2
                $poll_logging_method = intval(get_option('poll_logging_method'));
                if ($poll_logging_method == 1 || $poll_logging_method == 3) {
                    $cookie_expiry = intval(get_option('poll_cookielog_expiry'));
                    if ($cookie_expiry == 0) {
                        $cookie_expiry = 30000000;
                    }
                    $vote_cookie = setcookie('voted_' . $poll_id, $poll_aid, $pollip_timestamp + $cookie_expiry, COOKIEPATH);
                }
                $i = 0;
                foreach ($poll_aid_array as $polla_aid) {
                    $update_polla_votes = $wpdb->query("UPDATE {$wpdb->pollsa} SET polla_votes = (polla_votes+1) WHERE polla_qid = {$poll_id} AND polla_aid = {$polla_aid}");
                    if (!$update_polla_votes) {
                        unset($poll_aid_array[$i]);
                    }
                    $i++;
                }
                $vote_q = $wpdb->query("UPDATE {$wpdb->pollsq} SET pollq_totalvotes = (pollq_totalvotes+" . sizeof($poll_aid_array) . "), pollq_totalvoters = (pollq_totalvoters+1) WHERE pollq_id = {$poll_id} AND pollq_active = 1");
                if ($vote_q) {
                    foreach ($poll_aid_array as $polla_aid) {
                        $wpdb->query("INSERT INTO {$wpdb->pollsip} VALUES (0, {$poll_id}, {$polla_aid}, '{$pollip_ip}', '{$pollip_host}', '{$pollip_timestamp}', '{$pollip_user}', {$pollip_userid})");
                    }
                    echo display_pollresult($poll_id, $poll_aid_array, false);
                    exit;
                } else {
                    printf(__('Unable To Update Poll Total Votes And Poll Total Voters. Poll ID #%s', 'wp-polls'), $poll_id);
                    exit;
                }
                // End if($vote_a)
            } else {
                printf(__('You Had Already Voted For This Poll. Poll ID #%s', 'wp-polls'), $poll_id);
                exit;
            }
            // End if($check_voted)
        } else {
            printf(__('Invalid Poll ID. Poll ID #%s', 'wp-polls'), $poll_id);
            exit;
        }
        // End if($poll_id > 0 && $poll_aid > 0)
    } elseif (intval($_GET['pollresult']) > 0) {
        header('Content-Type: text/html; charset=' . get_option('blog_charset') . '');
        $poll_id = intval($_GET['pollresult']);
        echo display_pollresult($poll_id, 0, false);
        exit;
    } elseif (intval($_GET['pollbooth']) > 0) {
        header('Content-Type: text/html; charset=' . get_option('blog_charset') . '');
        $poll_id = intval($_GET['pollbooth']);
        echo display_pollvote($poll_id, false);
        exit;
    }
    // End if(!empty($_POST['vote']))
}