1

通常、クライアントと対話するWebサイトを開発するときは、ユーザー名またはユーザーIDを使用して構成などを保存していました。しかし、今はログインシステムのないウェブサイトを開発しているので、「いいね」や「アクセスしたページ」などを保存する必要があります。

インターネットプロトコル(IP)を試しましたが、訪問者がNATまたはプロキシを使用している場合は機能しません。

すべてのユーザーに一意のIDを作成し、データベースに保存するにはどうすればよいですか?

ちなみに私はPHPを使っています。

4

3 に答える 3

2

Cookie、IP、およびセッションの組み合わせを使用する必要があります。

于 2012-04-15T04:51:46.707 に答える
2

これは、ユーザーデータを長期間保存しようとしている場合の災害のレシピのように聞こえます。

私がお勧めします:

  1. ランダムだが一意のハッシュを作成し、それをデータベースに保存します。
  2. ユーザーのコンピューターでハッシュをCookieとして設定します。
  3. 「いいね」、「アクセスしたページ」などをすべて保存します。ハッシュにキー設定されたデータベースに。

この問題は、ユーザーが閲覧履歴/ Cookieをクリアしたときに発生しますが、すべてそのハッシュに基づいているため、そのユーザーのアクティビティを取得する方法はありません。

回避策の1つは、ハッシュを記載したメールをユーザーに送信し、アクティビティ履歴を再初期化する方法をユーザーに指示することだと思います。

あなたは彼らが彼らのハッシュを入力することができる特別なページを作成しなければならないでしょう、そしてあなたのシステムは彼らのシステムのクッキーをリセットするでしょう。

于 2012-04-15T05:11:13.297 に答える
1
do { 
$uniqueID = uniqid(); 
$exists = mysql_num_rows('SELECT * FROM table WHERE id = $uniqueID');
} while ($exists == 1)

同様のコードを使用して一意のIDを生成していますが、正常に機能します。または、さらに簡単にするために、uniqid()関数を使用することもできますが、実際には同じ結果が2つ生成されることはありません。

于 2012-04-15T04:50:44.133 に答える