if (!ini_get('register_globals')) {
$superglobals = array($_SERVER, $_ENV,
$_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobals, $_SESSION);
}
foreach ($superglobals as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
session_start();
function setToken()
{
$token = sha1(uniqid(mt_rand(), true));
$_SESSION['token'] = $token;
}
function checkToken()
{
$_SESSION['_err'] = '';
if (empty($_SESSION['token']) || empty($_POST['token']) || ($_SESSION['token'] != $_POST['token'])) {
$_SESSION['_err'] = 'csrferr';
error_log('invalid access (csrferr)');
header('Location: index.html');
exit;
}
}
function h($s)
{
return htmlspecialchars($s, ENT_QUOTES, "UTF-8");
}
$errstr = "";
$form = array();
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
// GET method
if ($_SERVER['HTTP_REFERER'] != '') {
if ($_SESSION['_err'] != '' || $_SESSION['_back'] != false) {
$errstr = $_SESSION['_err'];
foreach ($_SESSION['_form'] as $idx => $val) {
$form[$idx] = $val;
}
}
}
session_unset();
setToken();
} else {
// POST method
checkToken();
foreach ($_POST as $idx => $val) {
$_SESSION['_form'][$idx] = htmlspecialchars($val);
}
$_SESSION['_back'] = true;
$_SESSION['_err'] = '';
if (isset($_POST['captcha_code'])) {
if ($_POST['captcha_code'] == '') {
$_SESSION['_err'] = 'noninputcaptcha';
session_write_close();
error_log('invalid access (non input captcha)');
header('Location: index.html');
exit;
} elseif ($_POST['captcha_code'] != $_SESSION["securimage_code_disp"]["default"]) {
$_SESSION['_err'] = 'invalidcaptcha';
session_write_close();
error_log('invalid access (invalid captcha)');
header('Location: index.html');
exit;
}
}
}
講演会・講師のお問い合わせ
|
|
講演会・講師のお問い合わせ |
|