この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。


ワードプレスを使って無料で作る 会員制ポイントサイトの作り方 第四回 クッキーを使ってポイントの二重操作を防ぐ方法

前回はブロック記事を読むとポイントが変化する仕組みを学びました。
しかし、前回の課題として同じページを再読込するとポイントが二重に操作されるという問題がありましたね。これを簡便ながらで解決します。

クッキーというのはサーバー側ではなくユーザー側のブラウザに保存される一時データです。
よくパスワードの保存に使用されていますよね。
PHPでクッキーを扱うのはとても簡単です。

▼とほほのCookie入門

クッキーを保存するには以下のようにします。

setcookie( クッキー名 , 保存する値 , 有効期限 );

保存したクッキーを取り出すには以下のようにします。

保存した値 = $_[ クッキー名 ];

簡単に書きましたがPerlやJavascriptに比べて非常に簡単ですね。
クッキーで保存する値ですが、閲覧しているページのURLとします。URLはダブルことがないからです。

URLを取得するには2つの特殊な環境変数を使います。
環境変数「$_SERVER」はサーバーの環境が入った配列です。

「HTTP_HOST」を指定するとホスト名が取得でき、「REQUEST_URI」でホスト名以下が取得できます。

$_SERVER[ “HTTP_HOST” ]
$_SERVER[ “REQUEST_URI” ]

これを繋げるとホスト名とそれ以下が取得できます。

$url = $_SERVER[ "HTTP_HOST" ] . $_SERVER[ "REQUEST_URI" ];

単に判定するだけなので「http://」部分については不要です。
URLをクッキーに保存し、もし同じページを見ている場合はポイントの操作が既に行われているので何もしません。もしURLが異なればポイントを操作する、という処理です。

以下が改作したものです。前回記述した「functions.php」を以下に書き換えて下さい。

関連記事