'phone', 'message' => 'Error: A phone number is required.' ])); } //eliminate every char except 0-9 $phone_num = preg_replace("/[^0-9]/", '', $phone); //eliminate leading 1 if its there if (strlen($phone_num) == 11) $phone_num = preg_replace("/^1/", '', $phone_num); if (!isset($email) || preg_match($pattern, $email) !== 1) { http_response_code(400); header('Content-Type: application/json'); die(json_encode([ 'field' => 'email', 'message' => 'Error: A valid email address is required.' ])); } if (!isset($fname)) { http_response_code(400); header('Content-Type: application/json'); die(json_encode([ 'field' => 'full_name', 'message' => 'Error: A first and last name are required.' ])); } if (strlen($phone_num) !== 10) { http_response_code(400); header('Content-Type: application/json'); die(json_encode([ 'field' => 'phone', 'message' => 'Error: This phone number is invalid.' ])); } if ($gender && $gender !== 'm' && $gender !== 'f') { http_response_code(400); header('Content-Type: application/json'); die(json_encode([ 'field' => 'gender', 'message' => 'Error: An invalid gender was given.' ])); } $conn = new mysqli("localhost", "mileslinden", "Daiso@6969", "mileslinden"); $query = $conn->prepare( "INSERT INTO subscribers (`email`, `full_name`, `phone`, `gender`, `join_date`) VALUES (?, ?, ?, ?, ?)" ); if (!$query) { http_response_code(500); header('Content-Type: application/json'); die(json_encode(['message' => $conn->error])); } if (!isset($_SESSION['signups'])) { $_SESSION['signups'] = 0; } else if ($_SESSION['signups'] >= 5) { http_response_code(429); header('Content-Type: application/json'); die(json_encode(['message' => 'You are subscribing too often.'])); } $query->bind_param( "sssss", $email, $fname, $phone_num, $gender, 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 email is already subscribed.', 'field' => 'email'])); } else { die(json_encode(['message' => $query->error, 'errno' => $query->errno])); } } $_SESSION['signups']++; ?>