81 lines
2.1 KiB
PHP
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>
|