CommentsTrack light: x-ter Versuch

Published 2006-09-14, 14:33

Fast 1 Jahr hat sich bei meiner kleinen Idee CommentsTrack light nichts mehr getan. In den letzten Tagen habe ich jedoch wieder verstärkt in Kommentarthreads mitgeschrieben, die ich durchaus nochmal anschauen und bei denen ich auf Antworten reagieren wollte.

Cocomment, co.mments und Co funktionieren weiterhin nur mit Firefox oder Internet Explorer mit Bookmarkleiste, da mein Feedreader of choise jedoch IE als Anzeigecontainer nutzt und eben keine Bookmarkleiste einblendet kommen diese Service alle nicht in Frage.

Also altes Script hervorgeholt, abgestaubt, ein wenig aufgemöbelt und wieder eingebaut. Ergebnis; Meine letzten 10 getrackten Kommentare:

< ?php include("commentstrack_10.php"); ?>

Fehlt nur noch ein Modul, das sich den Seitentitel des Beitrags abholt und eine Erweiterung, die zählt, wie oft ich in dem Thread kommentiert habe. Aber das sind ja Kleinigkeiten.

mod_rewrite: Kommt der Besucher (nicht) von der eigenen Domain?

Published 2005-10-22, 20:14

Hin und wieder ist es ganz nützlich per mod_rewrite überprüfen zu können ob ein Nutzer zuvor schon eine Seite auf dem selben Server aufgerufen hat, oder eben nicht. Normalerweise macht man hier eine einfache Überprüfung:

RewriteCond %{HTTP_REFERER} ^(http://|https://)(www\.)?domain\.de(.*)$ [NC]

Diese Version hat den klaren Nachteil, dass man den Domainnamen fest in die .htaccess einbauen muss. Da ich genau eine solche Überprüfung nun für CommentsTrack light gebastelt habe und die Datei hier ja bereitgestellt werden soll brauchte ich eine andere Lösung – die Überprüfung muss anhand des Host-Headers der beim Aufruf gesendet wird stattfinden.

Grandios geholfen hat mir dabei Robert alias Caterham in einem Thread bei Abakus. Er hat zwar eine falsche Lösung gepostet, doch die hat mir dann den Denkanstoß für die funktionierende Version gegeben:

Im Pattern der Condition hat man keinen Zugriff auf irgendwelche Servervariabeln oder irgendwas anderes – es sind fast nur pure Ausdrücke möglich. Um also einen Vergleich basteln zu können muss man über einige Trickserei den Host-Header erst in das Pattern bringt und dann mit dem Referer vergleichen:

RewriteCond %{HTTP_HOST}<>%{HTTP_REFERER} ^(.+)<>https?://\1(.*)$ [NC]

Nehmen wir also an:

Referer: http://domain.de/referer.htm
Host: domain.de

ergibt sich daraus folgender Vergleich:

RewriteCond domain.de<>http://domain.de/referer.htm ^domain.de<>http://domain.de/referer.htm$ [NC]

Und da dies zutrifft, ist diese Rewriterule dafür geeignet zu übeprüfen ob der Referer vom selben Host ist wie die jetzt angeforderte Datei.

Für CommentsTrack light muss ich das ganze übrigens negieren, da ja eben gerade Aufrufe mit Referer vom selben Host nicht berücksichtigt werden sollen. Einfach ein Ausrufezeichen vor das Pattern und fertig.

[Update] Damit auch Verlinkungen von domain.de/referer.htm nach www.domain.de erkannt werden noch 2 kleine Änderungen:

RewriteCond %{HTTP_HOST}<>%{HTTP_REFERER} ^(www\.)?(.+)<>https?://(www\.)?\2(.*)$ [NC]

CommentsTrack light: 2 Versionen?

Published 2005-10-22, 01:05

Leider war das nicht so einfach wie erhofft, und so habe ich einige Zeit mit der .htaccess-Datei verbracht. Nun funktioniert das ganze aber sehr schön, durch Klick auf die eigene URL lassen sich die Kommentare nun zuverlässig tracken.

Im meinem ersten Post zu CommentsTrack hatte ich jedoch auch angedacht fremde Referer mitzutracken (Punkt 2), also die von Nutzern die das Cookie nicht gesetzt haben. Idee war es, auch Kommentare reinzukriegen die erst später freigeschaltet wurden und bei denen kein direktes anklicken möglich war.

Wie ich es jetzt auch drehe und wende, wenn ich CommentsTrack light als gehosteten Service anbieten möchte, bei dem nur eine Änderung in der .htaccess auf dem eigenen Server notwendig ist, wird das nicht möglich sein. Ich bekomme es nicht hin das System für den Besucher unsichtbar zu halten, und das ist ja eine der wichtigsten Sachen überhaupt dabei – die Besucher nicht irgendwie negativ zu beeinflussen.

Also wird es vielleicht 2 Versionen geben:

  1. Gehosteter Service mit nettem, aber begrenzten Funktionsumfang
  2. Script zur Installation auf dem eigenen Server mit vollem Funktionsumfang

Andererseits braucht man die Funktionalität 2 eigentlich gar nicht wirklich, da landen zu 99,9% andere Links in der Liste die nichts mit Kommentaren zu tun haben. Sowas wäre eher Funktionalität für ein nettes Statistik-Tool (a la Mint). Mal drüber nachdenken.

CommentsTrack light: Cookie & mod_rewrite

Published 2005-10-21, 15:26

Mein Betatest des neuen CommentsTrack light (CTl) läuft nun schon einige Zeit, und das auch recht erfolgreich. Es gibt immer noch kein Backend, aber das ist eigentlich recht schnell zusammengebastelt.

Mehr Sorgen machte mir der umständliche Einbau in eine Domain. Ist ein bestimmter Cookie gesetzt, werden alle Abfragen auf die Index-Datei über ein anderes Script geleitet. Dazu musste ich bisher jedoch Veränderungen an der Index-Datei vornehmen, im Falle von WordPress an der index.php.

Vorhin kam mir dann die Idee, das ganze schon eine Ebene zuvor ablaufen zu lassen und die .htaccess-Datei zu nutzen die auf den meisten Apache-Server ja nutzbar ist. Ich wusste nicht ob man per mod_rewrite Cookies auslesen kann, im Manual habe ich nun allerdings wirklich was passendes gefunden:

RewriteCond -> Server-Variables -> HTTP_COOKIE

Damit sollte es möglich werden die Anfragen ohne Änderungen an den eigentlichen Script-Dateien auf das CTl zu leiten – muss ich nachher gleich mal ausprobieren ob das so wirklich funktioniert.

[Update] Es scheint tatsächlich zu funktionieren. Nutzer die

[1] das Cookie haben (Cookie „owner“, Wert „1“),
[2] die Startseite aufrufen,
[3] nicht die Domain selbst als Referer
[4] oder gar keinen Referer haben
[5] werden auf die Datei commentstrack.php umgeleitet.

# BEGIN CommentsTrack light
RewriteCond %{HTTP_COOKIE} .*owner=1.*
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP_REFERER} !HTTP_HOST
RewriteCond %{HTTP_REFERER} !^$
RewriteRule ^(.*)$ /commentstrack.php [L]
# END CommentsTrack light

Jemand hier der mir sagen könnte ob das von der Syntax her alles passt?

[Update 2] Die dritte RewriteCondition war ziemlicher Müll, habe ich in einem extra Beitrag nun aber gefixt.

Betatest CommentsTrack light

Published 2005-09-23, 01:51

So wie in den Kommentaren zum Beitrag „Gedanken zu: Kommentare, CommentsTrack, Posted Elsewhere“ angekündigt habe ich mich mal hingesetzt und meine dort beschriebene Idee in einem Script umgesetzt.

Continue reading Betatest CommentsTrack light…

Gedanken zu: Kommentare, CommentsTrack, Posted Elsewhere

Published 2005-09-13, 17:14

Im August 2004 hatten Helge Fahrnberger und ich uns schon einmal Gedanken über folgendes Problem gemacht: Kommentiert man in einem fremden Weblog, so vergisst man oft sich die URL zu notieren oder später nochmal nach Antworten zu schauen. Das ist oft schade da man doch einiges an Gedanken in die Kommentare investiert hat und so oft gute Diskussionen schon im Ansatz versanden.

Wir hatten damals unter dem Namen CommentsTrack versucht die Spezifikation für ein Benachrichtigungssystem zu schaffen, eine Kombination aus Trackbacktechnik und Authentifizierungsarchitektur (ähnlich SORUA). Das ging schief, wir scheiterten an der Menge der Pings, die bei häufig kommentierten Einträgen bei jedem neuen Kommentar hätten versendet werden müssen – und unseren Ansprüchen auf Dezentralität und Universalität.

Das Problem wurmt mich aber noch immer, und gestern habe ich mir nochmal ein paar Gedanken gemacht.

Continue reading Gedanken zu: Kommentare, CommentsTrack, Posted Elsewhere…

18 queries. 0,203 seconds.