現在ドットインストールで簡単な投票システムを作っています。

http://dotinstall.com/lessons/poll_php_v2/9710

下記のif文が上手く動作していないせいか、
正常に投票しても常に"不正な操作です!"が表示されますが、
どの箇所が間違っているのでしょうか?

ソースも記載致します。

<index.php>

require_once('config.php');
require_once('functions.php');

session_start();

if ($_SERVER['REQUEST_METHOD'] != 'POST') {
    // 投稿前

    // CSRF対策
    if (!isset($_SESSION['token'])) {
        $_SESSION['token'] = sha1(uniqid(mt_rand(), true));
    }

} else {
    // 投稿後
    if (empty($_POST['token']) || $_POST['token'] != $_SESSION['token']) {
        echo "不正な操作です!";
        exit;
    }

    // エラーチェック
    if (!in_array($_POST['answer'], array(1, 2, 3, 4))) {
        $err = "写真を選択してください!";
    }

    if (empty($err)) {
        $dbh = connectDb();
        $sql = "insert into answers
                (answer, remote_addr, user_agent, answer_date, created, modified)
                values
                (:answer, :remote_addr, :user_agent, :answer_date, now(), now())";
        $stmt = $dbh->prepare($sql);
        $params = array(
            ":answer" => $_POST['answer'],
            ":remote_addr" => $_SERVER['REMOTE_ADDR'],
            ":user_agent" => $_SERVER['HTTP_USER_AGENT'],
            ":answer_date" => date("Y-m-d")
        );

        if ($stmt->execute($params)) {
            $msg = "投票ありがとうございました!";
        } else {
            $err = "投票は1日1回までです!";
        }

    }

}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>投票システム</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <style>
    .selected {
        border:4px solid red;
    }
    </style>
</head>
<body>

<?php if (!empty($msg)) : ?>
<p style="color:green"><?php echo h($msg); ?></p>
<?php endif; ?>

<?php if (!empty($err)) : ?>
<p style="color:red"><?php echo h($err); ?></p>
<?php endif; ?>

<h1>お料理コンテスト</h1>
<form action="" method="POST">
<img src="photo1.jpg" class="candidate" data-id="1">
<img src="photo2.jpg" class="candidate" data-id="2">
<img src="photo3.jpg" class="candidate" data-id="3">
<img src="photo4.jpg" class="candidate" data-id="4">
<p><input type="submit" value="投票する!"></p>
<input type="hidden" id="answer" name="answer" value="">
<input type="hidden" name="token" value="<?php echo h($_SESSION['token']); ?>">

</form>
<script>
$(function() {
    $('.candidate').click(function() {
        $('.candidate').removeClass('selected');
        $(this).addClass('selected');
        $('#answer').val($(this).data('id'));
    });
});
</script>
</body>
</html>

<config.php>

<?php
define('DSN', 'mysql:host=localhost;dbname=dotinstall_poll_php');
define('DB_USER', 'dbuser');
define('DB_PASSWORD', 'dayama0328');

define('SITE_URL', 'http://localhost/dotinstall/poll_php/');

error_reporting(E_ALL & ~E_NOTICE);

session_set_cookie_params(0, '/poll_php/');

?>

<functions.php>

<?php
function connectDb(){
  try {
    return new PDO(DSN, DB_USER, DB_PASSWORD);
  } catch (PDOException $e) {
    echo $e->getMessage();
    exit;
  }
}

function h($s){
  return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
}

?>