2012-05-03 3 views
1

マイページのURLには、id = N、num = N、item = Nの3つの変数があります。 N = 1,100です。これらは整数で、URLの例は次のとおりです。Cookie。各ページの訪問回数を重複しないようにカウントするにはどうすればよいですか?

page.php?id=1&num=24&item=12 

私は重複のない訪問をカウントしたいと思います。

クッキーが存在する場合、データベースに新しい値を追加しないでください。それ以外の場合は、クッキーを設定してデータベース内の値を増やしてください。

私は、ページが訪問されたかどうかを識別するための$ _COOKIEの[ '']配列を、使用:

$_COOKIE['product[id]'] = $_GET['id']; 
$_COOKIE['product[num]'] = $_GET['num']; 
$_COOKIE['product[item]'] = $_GET['item']; 

問題をパスが、それは違うの時に登場:

page.php?id=1&num=24&item=12&page=0#topView 

私は照会することはできません。人がページにアクセスするたびにデータベースにアクセスします.1000以上のユニーク訪問があるためです。

私の質問は次のとおりです。各ページの訪問時にmodをどのようにユニークに数えることができますか?

注:

page.php?id=1&num=24&item=12 

または

page.php?id=1&num=24&item=15 

または

page.php?id=2&num=24&item=12 

これらのリンクは、変数によって依存し、私にユニークな製品情報を提供します。

ありがとうございました!

+0

あなたのページに行き、page.php?id = 2&num = 10000000&item = 12と入力するとどうなるか考えましたか? :) –

+0

はい、クエリや実行前に、攻撃やデータの破損を防ぐためにフィルタのブロックを追加しました。 –

+1

ああ、私は数字の意味を誤解しました。 「人がページにアクセスするたびにデータベースを照会することはできません。なぜなら、1000以上のユニークな訪問があるからです。 - 私はあなたができるのか疑問に思います。私の意見では - あなたはすべきです。すべてのページアクセスをカウントし、最終結果を取得する場合は、ip、id、num、itemでグループ化します。すべてのデータをデータベースに保存すると、最も人気のあるページの概要も表示されます。さらに、1人のユニークユーザーが何ページに何回アクセスしているのかを確認し、理由を特定することができます。より多くのデータが良いです。それはあなたのデータベースの多くを取ることはありません。 –

答えて

0

私のコメントはあなたの問題の解決策であるので、私はaswerとして変換しています。

"人がページにアクセスするたびに、データベースに照会することはできません。なぜなら、1000以上のユニークな訪問があるからです。 - 私はあなたができるのか疑問に思います。私の意見では - あなたはすべきです。すべてのページアクセスをカウントし、最終結果を取得する場合は、ip、id、num、itemでグループ化します。すべてのデータをデータベースに保存すると、最も人気のあるページの概要も表示されます。さらに、1人のユニークユーザーが何ページに何回アクセスしているのかを確認し、理由を特定することができます。より多くのデータが良いです。それはあなたのデータベースの多くを取ることはありません。

最終決定アルゴリズムに間違いがあります。 idが11で、numが5でitemが7であるとします。id = 1、num = 15、item = 7の別のものを考えてみましょう。 :Pそう言えば

md5($_GET['id'].'-'.$_GET['num'].'-'.$_GET['item']); 

ですので、本当にユニークです。

関連する問題