| Server IP : 173.209.174.21 / Your IP : 216.73.216.89 Web Server : Apache/2.4.58 (Ubuntu) System : Linux wcfs-server 6.8.0-124-generic #124-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 13:00:45 UTC 2026 x86_64 User : nodor ( 1000) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/thelittlebigshow/app/ |
Upload File : |
<?php
session_start();
include_once("db.php");
include_once("voting_helpers.php");
function public_town_only($address) {
$address = trim((string) $address);
if ($address === '') {
return 'Not listed';
}
if (strpos($address, ',') !== false) {
$address = trim(explode(',', $address)[0]);
}
if (preg_match('/\d/', $address)) {
return 'Not listed';
}
return $address;
}
$settingSql = "SELECT * FROM `settings` WHERE id = 1";
$settingQuery = mysqli_query($conn, $settingSql);
$setting = mysqli_fetch_assoc($settingQuery);
$votingSettings = getVotingSettings($conn);
$votingClosed = isVotingClosed($votingSettings);
$closedOverridePassword = trim($votingSettings['closed_override_password'] ?? '');
$closedOverrideInput = trim($_POST['closed_override_password'] ?? '');
$hasClosedPasswordOverride = $votingClosed && $closedOverridePassword !== '' && hash_equals($closedOverridePassword, $closedOverrideInput);
$vehicle = null;
$vehicleId = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
$publicVoteCookieName = "people_choice_voted";
$hasVotedPeopleChoice = isset($_COOKIE[$publicVoteCookieName]);
foreach ($_COOKIE as $cookieName => $cookieValue) {
if (preg_match('/^voted_\d+$/', $cookieName)) {
$hasVotedPeopleChoice = true;
break;
}
}
if ($vehicleId) {
$vehicleStmt = mysqli_prepare($conn, "SELECT * FROM vehicles WHERE id = ?");
mysqli_stmt_bind_param($vehicleStmt, "i", $vehicleId);
mysqli_stmt_execute($vehicleStmt);
$vehicleResult = mysqli_stmt_get_result($vehicleStmt);
$vehicle = mysqli_fetch_assoc($vehicleResult);
}
if ($vehicle && $_SERVER['REQUEST_METHOD'] === 'POST') {
if ($votingClosed && !$hasClosedPasswordOverride) {
$_SESSION['err'] = "Voting is closed. Enter the admin override password to submit this vote.";
} elseif ($hasVotedPeopleChoice) {
$_SESSION['err'] = "You have already used your People's Choice vote.";
} else {
$vote = (int) $vehicle['fav_vote'] + 1;
$updateStmt = mysqli_prepare($conn, "UPDATE vehicles SET fav_vote = ? WHERE id = ?");
mysqli_stmt_bind_param($updateStmt, "ii", $vote, $vehicleId);
mysqli_stmt_execute($updateStmt);
setcookie($publicVoteCookieName, "1", time() + (86400 * 365), "/");
$_SESSION['msg'] = "Successfully voted.";
header("Location: public_vote.php?id=" . $vehicleId);
exit;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>People's Choice Vote</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="style.css">
<style>
.main{
padding-bottom: 80px;
}
input{
width: 100% !important;
margin: auto;
height: 45px !important;
}
.vehicle-summary {
color: #fff;
font-size: 18px;
}
</style>
</head>
<body>
<?php if ($vehicle) { ?>
<div class="container">
<div class="main">
<h1 class="text-center">People's Choice</h1>
<div class="row">
<div class="col-md-12">
<div class="form-img text-center">
<img src="./admin/assets/upload/<?php echo htmlspecialchars($setting['logo'] ?? '', ENT_QUOTES); ?>" alt="" class="card-img-top" style="width:250px; height: 250px; margin:auto;">
<p class="vehicle-summary mt-3 mb-0">
#<?php echo htmlspecialchars($vehicle['id'], ENT_QUOTES); ?>
<?php echo htmlspecialchars($vehicle['vehicle_year'] . " " . $vehicle['vehicle_maker'] . " " . $vehicle['vehicle_model'], ENT_QUOTES); ?>
</p>
<p class="vehicle-summary mb-0">
Town: <?php echo htmlspecialchars(public_town_only($vehicle['address'] ?? ''), ENT_QUOTES); ?>
</p>
</div>
</div>
<div class="d-flex justify-content-center align-items-center flex-column" style="width: 100%; margin-top: 30px;">
<?php if (isset($_SESSION['msg'])) { ?>
<div class="alert alert-success alert-dismissible fade show mt-4" role="alert">
<?php echo htmlspecialchars($_SESSION['msg'], ENT_QUOTES); ?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php unset($_SESSION["msg"]); ?>
<?php } ?>
<?php if (isset($_SESSION['err'])) { ?>
<div class="alert alert-danger alert-dismissible fade show mt-4" role="alert">
<?php echo htmlspecialchars($_SESSION['err'], ENT_QUOTES); ?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php unset($_SESSION["err"]); ?>
<?php } ?>
<div class="form-submit">
<?php if ($hasVotedPeopleChoice) { ?>
<p class="text-danger mt-2">You have already used your People's Choice vote.</p>
<?php } else { ?>
<form novalidate action="" method="POST">
<?php if ($votingClosed) { ?>
<div class="alert alert-warning text-center" role="alert">
Voting is closed<?php echo formatVotingCloseTime($votingSettings) ? " as of " . htmlspecialchars(formatVotingCloseTime($votingSettings), ENT_QUOTES) : ""; ?>. Admin override is required.
</div>
<div class="form-group">
<label for="closed_override_password">Admin Override Password</label>
<input type="password" class="form-control" id="closed_override_password" name="closed_override_password" required placeholder="Enter override password">
</div>
<?php } ?>
<button type="submit" name="vote" class="btn btn-warning">Vote Now</button>
</form>
<?php } ?>
</div>
</div>
</div>
</div>
</div>
<?php } else { ?>
<div class="text-center mt-5">
<p>NO DATA FOUND!!!!</p>
<a href="index.php" class="btn btn-info">Go To Home</a>
</div>
<?php } ?>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>