34198-vm/submit_vote.php
2025-09-18 12:31:58 +00:00

58 lines
1.7 KiB
PHP

<?php
require_once 'db/config.php';
header('Content-Type: application/json');
// Create table if it doesn't exist
try {
$pdo = db();
$sql = "
CREATE TABLE IF NOT EXISTS votes (
id INT AUTO_INCREMENT PRIMARY KEY,
voter_name VARCHAR(255) NOT NULL,
category VARCHAR(50) NOT NULL,
website_number INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);";
$pdo->exec($sql);
} catch (PDOException $e) {
echo json_encode(['success' => false, 'error' => 'Database error: ' . $e->getMessage()]);
exit;
}
$data = json_decode(file_get_contents('php://input'), true);
if (!$data) {
echo json_encode(['success' => false, 'error' => 'Invalid input']);
exit;
}
$voterName = $data['voter_name'] ?? '';
$category = $data['category'] ?? '';
$website_numbers_str = $data['website_numbers'] ?? '';
$website_numbers = !empty($website_numbers_str) ? array_map('trim', explode(',', $website_numbers_str)) : [];
if (empty($voterName) || empty($category) || !in_array($category, ['beauty', 'funny'])) {
echo json_encode(['success' => false, 'error' => 'Invalid data provided.']);
exit;
}
try {
$pdo = db();
$stmt = $pdo->prepare("INSERT INTO votes (voter_name, category, website_number) VALUES (:voter_name, :category, :website_number)");
foreach ($website_numbers as $number) {
if ($number >= 1 && $number <= 30) {
$stmt->execute([
':voter_name' => $voterName,
':category' => $category,
':website_number' => $number
]);
}
}
echo json_encode(['success' => true]);
} catch (PDOException $e) {
echo json_encode(['success' => false, 'error' => 'Database error: ' . $e->getMessage()]);
}