2009-03-12 8 views
2

Ich schreibe den Code für meine eigene Website als eine pädagogische/Spaßübung. Im Moment ist ein Teil der Website ein Blog (wie jede andere Seite dort: - /), der die üblichen grundlegenden Blog-Funktionen unterstützt, einschließlich der Kommentierung von Beiträgen. Aber ich habe nur Kommentare für eingeloggte Benutzer aktiviert; Ich möchte den Code ändern, um anonyme Kommentare zuzulassen - das heißt, ich möchte Leuten erlauben, Kommentare zu schreiben, ohne zuerst ein Benutzerkonto auf meiner Seite zu erstellen, obwohl es immer noch eine Art von Authentifizierung geben wird, um Spam zu verhindern.Ändern meiner Website, um anonyme Kommentare zuzulassen

Frage: Welche Informationen sollte ich für anonyme Kommentare speichern? Ich denke zumindest Anzeigename und E-Mail-Adresse (für die Anzeige eines Gravatar) und wahrscheinlich Website-URL, weil ich schließlich auch OpenID akzeptieren möchte, aber würde alles andere Sinn machen?

Andere Frage: Wie soll ich die Datenbank ändern, um diese Informationen zu speichern? Das Schema I für den Kommentar Tabelle habe derzeit

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 

Soll ich für Namen zusätzliche Felder hinzufügen, E-Mail-Adresse usw. an die Kommentartabelle? (scheint eine schlechte Idee zu sein) Erstellen Sie eine neue Tabelle "anonyme Benutzer"? (Und wenn ja, wie kann man verhindern, dass anonyme Benutzer-IDs mit normalen Benutzer-IDs in Konflikt geraten) Oder erstellen Sie gefälschte Benutzerkonten für anonyme Benutzer in meiner vorhandenen Benutzertabelle?

Ein Teil von dem, was diese knifflige ist, dass jemand, der versucht, einen anonymen Kommentar unter Verwendung einer E-Mail-Adresse (oder OpenID), die bereits mit einem Konto auf meiner Website verknüpft ist, möchte ich fangen und sie zur Protokollierung aufgefordert in.

Antwort

4

Der ganze Punkt der anonymen Kommentare ist, dass Benutzer nicht anmelden müssen, richtig?

Mein persönlicher Geschmack ist es, den Benutzer nicht zu zwingen, etwas einzugeben, nicht einmal ihren Namen! Das einzige erforderliche Feld ist der Kommentartext selbst. Wenn sie ihren Namen oder ihre E-Mail nicht preisgeben wollen, gut, wen interessiert das?

Wenn sie eine E-Mail angeben, die bereits existiert, besteht die Möglichkeit, dass sie sich vor langer Zeit registriert haben und sich nicht einmal an ihr Passwort erinnern.

Erzwingen Sie den Benutzer nicht erneut, sich in diesem Fall anzumelden. Geben Sie ihnen einfach die Möglichkeit, sich entweder anzumelden oder das E-Mail-Feld leer zu lassen (oder den Inhalt zu ändern). Oder zeigen Sie einfach eine Warnmeldung an, dass der Kommentar ohne die E-Mail-Adresse mit den Optionen "OK" und "Abbrechen" gesendet wird.

Also, was mit dem anonymen Kommentar zu speichern?

Ich würde sagen, speichern Sie ihren Namen und E-Mail (natürlich, zeigen Sie nicht ihre E-Mail an die Öffentlichkeit), aber machen sie optionale Felder, nicht zwingend erforderlich.

Sie können auch ihre Website speichern, obwohl ich persönlich nicht weiß, was der Sinn ist, außer vielleicht selbst Werbung für das anonyme Poster!

+0

Nun, ich brauche die E-Mail-Adresse sowieso, um eine Bestätigungsnachricht zu senden, also könnte ich sie auch speichern - natürlich würde sie nicht direkt angezeigt werden ;-) Aber irgendwie gefällt mir die Idee einfach in der Lage sein, einen Kommentar ohne weitere Informationen zu hinterlassen. –

+0

Die Bestätigungs-E-Mail ist auch eine Quelle der Belästigung für die Benutzer, manchmal ist es notwendig (z. B. Abonnement/Anmeldebestätigung), aber ein Kommentar zu hinterlassen, bedarf keiner E-Mail-Bestätigung. – hasen

1

Keine Frage, Sie geben den "Benutzernamen" in der Kommentartabelle ein. Und Sie kopieren den Wert in Ihrer Benutzertabelle in das Feld für angemeldete Benutzer. Wenn ein Benutzer gelöscht wird, wird seinen Kommentaren auf diese Weise noch ein Name angehängt. Kommentare sind in der Regel hierarchisch, was es schwierig macht, einen Kommentar in der Mitte eines Kommentarbaums zu löschen.

Wenn sie es leer lassen, geben Sie Ihren "anonymous_user" -Text in die Tabelle ein.