44 lines
1.1 KiB
PHP
44 lines
1.1 KiB
PHP
<?php
|
|
require_once __DIR__ . '/ideas_helper.php';
|
|
|
|
function idea_redirect(string $lang, string $status): never {
|
|
$lang = preg_replace('/[^a-z]/', '', strtolower($lang));
|
|
if ($lang === '') {
|
|
$lang = 'en';
|
|
}
|
|
header('Location: blog.php?lang=' . rawurlencode($lang) . '&idea=' . rawurlencode($status) . '&saved=' . time() . '#visitor-ideas', true, 303);
|
|
exit;
|
|
}
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
http_response_code(405);
|
|
exit;
|
|
}
|
|
|
|
$lang = (string) ($_POST['lang'] ?? 'en');
|
|
|
|
if ((int) ($_SERVER['CONTENT_LENGTH'] ?? 0) > 4096) {
|
|
idea_redirect($lang, 'invalid');
|
|
}
|
|
|
|
if (visitor_idea_clean((string) ($_POST['company_site'] ?? ''), 80) !== '') {
|
|
idea_redirect($lang, 'thanks');
|
|
}
|
|
|
|
$name = visitor_idea_clean((string) ($_POST['visitor_name'] ?? ''), 80);
|
|
$idea = visitor_idea_clean((string) ($_POST['visitor_idea'] ?? ''), 600);
|
|
|
|
if (strlen($idea) < 10) {
|
|
idea_redirect($lang, 'invalid');
|
|
}
|
|
|
|
if (visitor_ideas_recently_submitted()) {
|
|
idea_redirect($lang, 'slow');
|
|
}
|
|
|
|
if (!visitor_ideas_append($name, $idea)) {
|
|
idea_redirect($lang, 'error');
|
|
}
|
|
|
|
idea_redirect($lang, 'thanks');
|