<?php
session_start();
//トークンをセッションにセット
function setToken(){
$token = sha1(uniqid(mt_rand(), true));
$_SESSION['token'] = $token;
}
//トークンをセッションから取得
function checkToken(){
//セッションが空か生成したトークンと異なるトークンでPOSTされたときは不正アクセス
if(empty($_SESSIOIN['token']) || ($_SESSION['token'] != $_POST['token'])){
echo '不正なPOSTが行われました', PHP_EOL;
exit;
}
}
//エスケープ
function h($s){
return htmlspecialchars($s, ENT_QUOTES, "UTF-8");
}
//GETでアクセスされたとき
if($_SERVER['REQUEST_METHOD'] != 'POST'){
setToken();
}
//POSTでアクセスされたとき
else{
checkToken();
}