Logdatei: Suchanfragen der User?

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Silver
ConPresso-Newbie
Beiträge: 16
Registriert: 02.05.2007 15:07
Hat sich bedankt: 4 Mal

Logdatei: Suchanfragen der User?

Beitrag von Silver »

Hallo zusammen!

Bei Conpresso 3 werden in der Logdatei auch die Suchanfragen von Usern aufgeführt, z.B.:
11 USER 12.07.2007 · 07:43 Suche
[Search] Nippon
(1 Results)
Das fand ich eine überaus nützliche Funktion, um das Suchverhalten der User auszuwerten und das (in unserem Fall) Intranet-Angebot entsprechend der Suchanfragen anzupassen bzw. zu erweitern.

Dieses Feature vermisse ich in Conpresso 4. Lässt sich das im laufenden Betrieb ohne größeren Aufwand implementieren?

Viele Grüße, Silver
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Hallo Silver,

öffne mal die _mod_search/includes/parser.inc.php und füge

Code: Alles auswählen

logaction('mod_search ('.$directory.')', 'Suchbegriff: '.$_REQUEST['q'].' ('.$matches.')');
in die vorletzte Zeile ein, also vor der Zeile
Gruß Matthias V

P.S. Stimmt, das ist eine schöne Erweiterung, das könnte man Balu mal vorschlagen.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Silver
ConPresso-Newbie
Beiträge: 16
Registriert: 02.05.2007 15:07
Hat sich bedankt: 4 Mal

Beitrag von Silver »

Wow, perfekt!!

Nur noch was kosmetisches... mein Treffertext ist ziemlich lang, der Logdateieintrag sieht jetzt so aus:
Suchbegriff: foo(Ihre Suche lieferte 2 Treffer. Die Ergebnisse sind unten aufgelistet. Um zum jeweiligen Artikel zu gelangen, klicken Sie einfach die Überschrift an.)
Gibt es statt $matches noch was anderes, das nur die reine Anzahl ausgibt? Damit es im Endeffekt so aussehen könnte:
Suchbegriff: foo (Treffer: 2)
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Gut, dann nimm mal das hier:

Code: Alles auswählen

logaction('mod_search ('.$directory.')', 'Suchbegriff: '.$_REQUEST['q'].' (Treffer: '.count($results).')');
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hallo zusammen,

ich habe das direkt in CPO4 übernommen.

Balu
Bartels.Schöne
ConPresso Support & Development
Benutzeravatar
Feuer112
ConPresso-User
Beiträge: 56
Registriert: 02.10.2006 15:08
Hat sich bedankt: 8 Mal
Danksagung erhalten: 3 Mal

Beitrag von Feuer112 »

Hallo zusammen,

ich habe eben seit langem wieder einmal in die Log-Datei von Conpresso geschaut und bin dabei erschrocken

Ich habe wie hier beschrieben vor einiger Zeit mein Conpresso Projekt angepasst.

Nun kann ich in der Logdatei sehen, dass alle paar Minuten nach einem Begriff gesucht wird (siehe Anhang). Dabei handelt es sich auch um Begriffe, welche absolut nichts mit meiner Seite zu tun haben. Das ganze beginnt laut Log-Datei am 28.09.07. Ich habe in diesem Zeitraum jedoch keine besonderen Änderungen an Conpresso vorgenommen!

Kennt jemand von euch dieses Problem? Steigt dadurch mein Datenaufkommen?

Gruß Matze
Dateianhänge
Suche.jpg
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Zum einen sind es wohl harmlose Begriffe, zum anderen erzeugt "alle paar Minuten" kein erhöhtes Datenaufkommen.

Meine Suche wurde mal gezielt von Spammern missbraucht. Dabei wurde eine URL und ein paar Schmuddelwörter in die Suchmaske eingegeben.
Die Suche meldete dann brav, daß zu den Suchwörtern nichts gefunden wurde.
Aber das ganze wurde per Link auf meine Seite gemacht. Eine Suchmaschine, die diesen Links folgt sieht dann, daß auf meiner Seite auch was zu diesen Schmuddelthemen und sogar eine URL einer anderen Seite ausgegeben wird und hält dies wiederum für einen Link auf diese Seite. Ich habe dann einfach das Script bei der Suche nach Begriffen, die http enthalten, abbrechen lassen. Seitdem ist Ruhe.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 12:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

Beitrag von baluo »

hallo allerseits,

nachdem mich heute ein freund auf dieses thema angesprochen hat --- gibt es weitere beobachtungen in der logdatei dieser website ?

und @markus:
dann einfach das Script bei der Suche nach Begriffen, die http enthalten, abbrechen lassen
wie hast du das gemacht ?

ciao, gerhard
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Code: Alles auswählen

if (
	strpos(strtolower($_REQUEST['q']), "[") !== FALSE ||
	strpos(strtolower($_REQUEST['q']), "]") !== FALSE ||
	strpos(strtolower($_REQUEST['q']), "http") !== FALSE ||
	strpos(strtolower($_REQUEST['q']), "url") !== FALSE ||
	strpos(strtolower($_REQUEST['q']), "link") !== FALSE ||
	strpos(strtolower($_REQUEST['q']), "url") !== FALSE
	)
	{
		unset($_REQUEST['q']);
	}
Das filtert das übliche Zeug, was da so reingeschrieben wird, raus.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 12:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

Beitrag von baluo »

danke, markus,
MarkusR hat geschrieben:

Code: Alles auswählen

if (
	strpos(strtolower($_REQUEST['q']), "[") !== FALSE ||
...
Das filtert das übliche Zeug, was da so reingeschrieben wird, raus.
und wo wird das eingefuegt?

ciao, gerhard
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

In der Suche.

Dateiname findest Du in der Adresszeile Deines Browsers.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

Matthias V hat geschrieben:Gut, dann nimm mal das hier:

Code: Alles auswählen

logaction('mod_search ('.$directory.')', 'Suchbegriff: '.$_REQUEST['q'].' (Treffer: '.count($results).')');
Hallo MarkusR,

geht dies irgendwie auch für dein "mod_feature_search" ??

Also der Eintrag funktioniert ja, nur geht die Variable "$_REQUEST['q']" nicht ... da kommt dann einfach - nichts.

cu Ralf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Nicht wirklich...

da mod_feature_search nicht nur ein Eingabefeld sondern beliebig viele erlaubt, die sich wiederum auf beliebige Felder beziehen können, ist die sinnvolle Definition der zu loggenden Informationen nicht leistbar.

Vorstellbar wäre aber eine zusätzliche Einstellung im Backend, bei der der Admin selbst definieren muß wie und was da aus den von ihm selbst vorgegebenen Suchbedingungen denn nun dokumentiert werden soll... bisher sind aber schon die meisten damit überfodert zu verstehen um was es bei dem Modul überhaupt geht... :twisted: ... relationale Datenbanken eben...

Wenn Du es mit dem obenstehen Code selbst machen willst, dann ersetze q einfach durch den/die Namen der Suchfelder, die Du in Dein Formular eingebaut hast...

Du könntest auch einfach statt $_REQUEST["q"] die Variable $_SERVER["QUERY_STRING"] einsetzen, da steht alles, aber eben wirklich alles wissenswerte drin... insofern Du GET statt POST benutzt
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Beitrag von Ralf »

Sorry wenn ich erst jetzt antworte aber ich habe dein Posting schon gesehen und auch schon eingebaut ... jedoch kann ich mich noch nicht wirklich mit der Ausgabe von Query-String anfreunden ... muss mal schauen ob ich sie dann lieber ganz rausnehme oder was ich tue - jedoch vorerst lass ich sie mal drin 8)

Trotzdem vielen DANK
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Hallo Ralf,

du kannst dir den Query-String natürlich auch auf mehrere Log-Zeilen aufteilen, oder anders formatieren (ohne Steuerzeichen, die keine Informationen enthalten).
Ich weiß allerdings nicht wie dieser Query-String aussieht, da ich diese Modul noch nie getestet/eingesetzt habe.

Dazu kannst du beispielsweise den Query-String mit split() auseinandernehmen und in Arrays packen, und diese dann mittels foreach()-Schleife wieder auseinander nehmen.

Jedenfalls kannst du mit diesen und anderen PHP-Funktionen ein wenig herumexperiementieren.

Wenn du deine Ergebnisse hier postest, freuen sich bestimmt auch andere.

Gruß Matthias
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Antworten