session_start();
if($_SESSION['hasbeenhere'] == 1)
{
// Page refreshed
}
else
{
$_SESSION['hasbeenhere'] = 1;
}
ユーザーがCookieを有効にしていない場合、これは失敗します。誰かが別のページに行って戻ってくると、それはリフレッシュされたものとして表示されます。
全体的に、これは確かな方法で行うことはできませんが、これは誰かが同じページを2度見ることを防ぐ1つの方法です。
あなたのコメントのために、人々がF5を200回押すのを止めたい場合は、これを試してください。
$page = $_SERVER['REQUEST_URI'];
// Defaults
if(!isset($_SESSION[$page]['count']))
{
$_SESSION[$page]['count'] = 1;
$_SESSION[$page]['first_hit'] = time();
$_SESSION[$page]['banned'] = false;
}
else
{
$_SESSION[$page]['count']++; // Increase the counter
}
// If person is banned, end script
if($_SESSION[$page]['banned'] == true)
{
die();
}
if($_SESSION[$page]['first_hit'] < time() - 30)
{
$_SESSION[$page]['count'] = 1; // Reset every 30 seconds
}
if($_SESSION[$page]['count'] > 100)
{
$_SESSION[$page]['banned'] = true;
// Ban if they hit over 100 times in 30 seconds.
}
なぜですか?あなたはPOST変数を再送しないようにしていますか? AJAXを使用します。 –
人がページをリフレッシュするとき、またはF5キーを押してページをリフレッシュするときだけを意味しますか?明確化 – colithium
なぜあなたはこれをしたいですか? – Randell