Your IP : 216.73.216.39


Current Path : /home/wirbesti/unwaehlbar.ch/
Upload File :
Current File : /home/wirbesti/unwaehlbar.ch/vote.php

<?php

require_once 'ip.php';
require_once 'PopularityProvider.php';
require_once 'DAO/vote.php';


    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    set_error_handler(function ($level, $message, $file = '', $line = 0) {
        throw new ErrorException($message, 0, $level, $file, $line);
    }
    );
    require_once "settings.config.php";
    require_once "DBConnection.php";
    // Database Connection Code
    $database = new DbConnection($config);
    $voteObj = new Vote($database);
    $vote = intval($_GET['vote']);
    $id = intval($_GET['id']);
    $date = $heute = date("Y-m-d H:i:s");
    if (!isset($_GET['ut'])) {
        http_response_code(400);
        return;
    }
    $upvotes = intval($_GET['ut']);
    $downvotes = intval($_GET['dt']);
    $totalFromDB = $voteObj->getTotalVoteCount($id, $database);
    if ($totalFromDB != ($upvotes + $downvotes)) {
        http_response_code(400);
        return;
    }
    $ipaddress = getIPAddress();
    $voteObj->deactivateVotesIfFraudAttemptDetected(
        $id, $upvotes, $downvotes, $vote,
        $database
    );
    $upDeactivated = $voteObj->isVoteDeactivated('up', $id, $database);
    $downDeactivated = $voteObj->isVoteDeactivated('down', $id, $database);
    $isVoteAllowed = $vote == 1 && !$upDeactivated
        || $vote == -1 && !$downDeactivated;
    $previousVotes = $voteObj->getVoteCountWithSameIpAddress($id, $database);
    echo 'Referrer = '.$_SERVER['HTTP_REFERER']."<br/>";

    if ($previousVotes == 0 && $isVoteAllowed) {
            $data = [
            'created' => $date,
            'id' => $id,
            'ip' => $ipaddress,
            'vote' => $vote
            ];

            if (!$voteObj->wasVotedOnInSameDomain($id, $database)) {
                $insertSQL = "INSERT into `vote` (`created`,`politicianid`,`ipaddress`,`vote`) VALUES (:created,:id,:ip,:vote)";

                $getpoliticians = $database->dbc->prepare($insertSQL);
                $getpoliticians->execute($data);
                if (($upDeactivated && $vote == -1)
                    || ($downDeactivated != null && $vote == 1)
                ) {
                    $voteObj->reactivateVotesIfPossible($id, $upvotes, $downvotes, $vote, $database);
                }
                http_response_code(200);
            } else {
                http_response_code(400);
            }
    } elseif ($previousVotes == 0) {
        // Nothing to do - Vote is deactivateds
    } else {
        $statement = $database->dbc->prepare("UPDATE `vote` SET `vote`= :vote, `modified` = :date WHERE `politicianid` = :politicianid AND `ipaddress` = :ipaddress");
        $statement->bindParam(":politicianid", $id);
        $statement->bindParam(":ipaddress", $ipaddress);
        $statement->bindParam(":vote", $vote);
        $statement->bindParam(":date", $date);
        $statement->execute();
    }

?>