2009-03-12 11 views
2

私は自分のウェブサイトのコードを教育的/楽しい練習として書く。今のところウェブサイトの一部は、ブログにあります(他のすべてのサイトと同様に、 - /)。これは、投稿のコメントを含む通常の基本的なブログ機能をサポートしています。しかし、私は、ログインしたユーザーに対してのみコメントを有効にしています。匿名のコメントを許可するようにコードを変更したい、つまり、自分のサイトに最初にユーザーアカウントを作成せずにコメントを投稿できるようにしたいのですが、迷惑メールを防ぐための認証があります。匿名のコメントを許可するために私のウェブサイトを変更する

質問:匿名のコメントにはどのような情報を保存する必要がありますか?私は最終的にOpenIDも受け入れたいと思っていたので、少なくとも表示名と電子メールアドレス(Gravatarを表示するため)とおそらくウェブサイトの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と競合するのを防ぐ方法)または、既存のユーザーテーブルの匿名ユーザーの偽のユーザーアカウントを作成しますか?

このトリッキーなことの一部は、自分のサイトのアカウントに既に関連付けられているメールアドレス(またはOpenID)を使用して匿名のコメントを投稿しようとすると、そのことを把握してログに記録しますin。

答えて

4

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

私の個人的な好みは、ユーザーが名前を入力するのを強制することではありません。唯一のrequriedフィールドはコメントテキストです。彼らが自分の名前や電子メールを出すことを望まないのならば、誰が気にしますか?

すでにメールが届いている場合、以前登録したことがあり、パスワードを覚えていない可能性があります。

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

匿名のコメントで保存するものは?

名前とメールアドレスを保存して(もちろん、メールを一般公開しない)、必須フィールドではなくオプションフィールドにしておきます。

自分のウェブサイトを保存することもできますが、個人的には匿名のポスターの自己広告以外の何がそのポイントなのか分かりません。

+0

確かに私は検証メッセージを送るために電子メールアドレスが必要なので、私はそれを保存するかもしれないと思います - もちろん、それは直接表示されません;-)しかし、私はちょうど他の情報なしでコメントを残すことができます。 –

+0

確認メールはユーザーに迷惑をかける原因でもありますが、必要な場合(購読/登録確認など)が必要な場合もありますが、コメントを残しても電子メールの確認は必要ありません。 – hasen

1

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

空白のままにすると、テーブルに「anonymous_user」というテキストが入力されます。

関連する問題