miles-city-council/public/requestSign.php
2022-02-25 22:25:51 -08:00

81 lines
2.1 KiB
PHP

<?php
session_set_cookie_params(3600);
session_start();
$address = $_POST['address'];
$quantity = $_POST['quantity'];
$wire = $_POST['wire_stake'];
if (!isset($address) || strlen($address) === 0) {
http_response_code(400);
header('Content-Type: application/json');
die(json_encode([
'field' => 'address',
'message' => 'Error: A valid address is required.'
]));
}
if (!isset($quantity) || (int) $quantity <= 0) {
http_response_code(400);
header('Content-Type: application/json');
die(json_encode([
'field' => 'quantity',
'message' => 'Error: A quantity is required.'
]));
}
if (!isset($wire)) {
http_response_code(400);
header('Content-Type: application/json');
die(json_encode([
'field' => 'wire_stake',
'message' => 'Error: Wire stake preference needs to be specified.'
]));
}
$conn = new mysqli("localhost", "mileslinden", "Daiso@6969", "mileslinden");
$query = $conn->prepare(
"INSERT INTO signs (`address`, `quantity`, `wire_stake`, `join_date`) VALUES (?, ?, ?, ?)"
);
if (!$query) {
http_response_code(500);
header('Content-Type: application/json');
die(json_encode(['message' => $conn->error]));
}
if (!isset($_SESSION['signs'])) {
$_SESSION['signs'] = 0;
} else if ($_SESSION['signs'] >= 5) {
http_response_code(429);
header('Content-Type: application/json');
die(json_encode(['message' => 'You are requesting signs too often.']));
}
$query->bind_param(
"sibs",
$address, $quantity, $wire,
date("Y-m-d H:i:s")
);
if (!$query->execute()) {
http_response_code(500);
header('Content-Type: application/json');
if ($query->errno === 1062) {
http_response_code(400);
header('Content-Type: application/json');
die(json_encode(['message' => 'This address has already requested a sign.', 'field' => 'address']));
} else {
die(json_encode(['message' => $query->error, 'errno' => $query->errno]));
}
}
$_SESSION['signs']++;
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Miles Linden for San Jose City Council</title>
</head>
<body>
<h1>You have requested a sign successfully.</h1>
</body>
</html>