2

私は自分のウェブサイトのコードを教育的/楽しい練習として書いています。現在、Web サイトの一部はブログ (他のすべてのサイトと同様 :-/) であり、投稿へのコメントなど、通常の基本的なブログ機能をサポートしています。ただし、ログインしているユーザーに対してのみコメントを有効にしています。匿名のコメントを許可するようにコードを変更したい - つまり、自分のサイトでユーザー アカウントを作成しなくてもコメントを投稿できるようにしたいのですが、スパムを防ぐために何らかの認証が必要になります。

質問: 匿名のコメントにはどのような情報を保存する必要がありますか? 最終的には OpenID も受け入れたいので、少なくとも表示名とメール アドレス (Gravatar を表示するため)、およびおそらく Web サイトの URL を考えていますが、他に何か意味はありますか?

その他の質問: この情報を保存するには、データベースをどのように変更すればよいですか? コメントテーブル用に私が持っているスキーマは現在

comment_id       smallint(5)       // The unique comment ID
post_id          smallint(5)       // The ID of the post the comment was made on
user_id          smallint(5)       // The ID of the user account who made the comment
comment_subject  varchar(128)
comment_date     timestamp
comment_text     text

名前、電子メール アドレスなどのフィールドをコメント テーブルに追加する必要がありますか? (悪い考えのようです) 新しい「匿名ユーザー」テーブルを作成しますか? (もしそうなら、匿名ユーザー ID が通常のユーザー ID と競合しないようにする方法) または、既存のユーザー テーブルに匿名ユーザー用の偽のユーザー アカウントを作成しますか?

これを難しくしている理由の 1 つは、誰かが私のサイトのアカウントに既に関連付けられている電子メール アドレス (または OpenID) を使用して匿名のコメントを投稿しようとした場合、それをキャッチしてログインを促すことです。

4

2 に答える 2

4

匿名コメントの要点は、ユーザーがログインする必要がないことですよね?

私の個人的な好みは、ユーザーに名前でさえ、何も入力するように強制しないことです! 唯一の必須フィールドは、コメント テキストそのものです。彼らが自分の名前やメールアドレスを教えたくないのなら、大丈夫です。誰が気にしますか?

既に存在する電子メールを提供した場合、かなり前に登録したため、パスワードさえ覚えていない可能性があります。

この場合も、ユーザーにログインを強制しないでください。ログインするか、メール フィールドを空白のままにする (または内容を変更する) かを選択するだけです。または、「OK」および「キャンセル」オプションを使用して、コメントが電子メール アドレスなしで送信されることを伝える警告ボックスを表示するだけです。

では、匿名のコメントと一緒に何を保存するのでしょうか?

名前と電子メールを保存し (もちろん、電子メールを公開しないでください)、必須ではなくオプションのフィールドにします。

彼らのウェブサイトを保存することもできますが、個人的には、匿名の投稿者の自己宣伝以外に、それが何を意味するのかはわかりません!

于 2009-03-12T05:24:16.350 に答える
1

間違いなく、コメントテーブルに「ユーザー名」を入力します。そして、ユーザーテーブルの値をログインユーザーのそのフィールドにコピーします。このようにして、ユーザーが削除されても、コメントには名前が付けられたままになります。コメントは通常階層的であるため、コメントツリーの途中でコメントを削除することは困難です。

空白のままにした場合は、テーブルに「anonymous_user」テキストを入力します。

于 2009-03-12T06:27:43.983 に答える