CrazyStat unter Wordpress

In case you have any problems with CrazyStat
Forum rules
Please read FAQ and search the forum before asking questions here.
Always include your CrazyStat version number.
CrazyStat documentation can be found here.

Preferred language of discussion is English so most users can profit from your threads, but German is okay as well.

Bevorzugte Sprache ist Englisch, damit möglichst viele Nutzer von den Threads profitieren können, aber Deutsch wird auch akzeptiert.
Post Reply
Astrid
Posts: 27
Joined: Wed May 09, 2012 6:34 pm

CrazyStat unter Wordpress

Post by Astrid » Wed May 09, 2012 7:45 pm

Hallo zusammen und erst einmal Danke für CrazyStat!
Bisher habe ich schon öfters CrazyStat angwendet und es hat alles geklappt aber nun bin ich wirklich mit meinem Latein am Ende.

Meine Dateistruktur auf dem Server ist: /html/wordpress/stat (sprich CrazyStat liegt innerhalb von Wordpress)
Meine webseite.de soll beim Aurfruf weitergeleitet werden nach "wordpress".
Nun hab ich CrazyStat so eingebunden wie hier beschrieben, und noch mehr versucht mit folgendem Ergebnis:
1.

Code: Select all

<?php @include_once("stat/src/include.php"); ?>
loggt nur die Startseite
2.

Code: Select all

<?php @include_once("/stat/src/include.php"); ?>
loggt nix
3.

Code: Select all

<?php @include_once("../stat/src/include.php"); ?>
loggt nix
4.

Code: Select all

<?php $set_rel_path="/stat/";
@include_once("/stat/src/include.php"); ?> 
loggt nix
5.

Code: Select all

<?php $set_rel_path="/stat/";
@include_once("../stat/src/include.php"); ?>
loggt nix
6.

Code: Select all

<?php $set_rel_path="stat/";
@include_once("stat/src/include.php"); ?>
loggt nur die Startseite

ich weiß dass einige davon falsch sind, aber ich hab halt verzweifelt alles ausprobiert.
In der config.php hatte ich noch folgendes hinzugefügt:

Code: Select all

$config_different_rel_paths=true;
$config_stat_files_hide_dir=false;
$config_mehrere_rel_pfade=true
Wenn der Ordner "stat" im Übergeordneten Ordner von wordpress liegt also /html/stat/wordpress und ich diesem

Code: Select all

<?php $set_rel_path="/stat/";
@include_once("../stat/src/include.php"); ?>
Befehl in die footer.php von wordpress schreibe klappt alles vorzüglich und alle Seiten und Artikel werden geloggt. Aber meineseite.de muss ja auf den Ordner wordpress verweisen.
Gibt es irgendeine Möglichkeit dass das funktioniert? habe ich vielleicht doch wieder nur eine Kleinigkeit übersehen? Bitte um Antwort. Vielen Dank und Gruß

Christopher
Site Admin
Posts: 150
Joined: Sat Mar 03, 2012 10:30 pm
Location: Germany

Re: CrazyStat unter Wordpress

Post by Christopher » Wed May 09, 2012 10:08 pm

Hallo Astrid,

"loggt nur die Startseite". Da vermute ich zwei mögliche Ursachen:
1. Du verwendest eine modrewrite-basierte Lösung, die Unterordner simuliert, beispielsweise für Jahr und Monat, d.h. deine URLs sehen z.B. aus wie diese hier (random blog):
http://broadsideblog.wordpress.com/2012 ... versation/

2. Du hast im Template einen Part erwischt, der nur auf der Startseite ausgegeben wird.

Ich vermute mal stark, dass 1. der Fall ist.
Dann hast du das Problem unterschiedlicher Ordner. Auf die einfachste Lösung bist du schon fast selbst gekommen, hast aber einen wichtigen Hinweis in der FAQ übersehen.

Das Problem erklärt dieser FAQ-Eintrag: http://documentation.crazystat.de/faq_de.html#faq14
Du hast die zweite Möglichkeit bereits fast probiert:

Code: Select all

<?php $set_rel_path="/stat/";
@include_once("stat/src/include.php"); ?> 
Jetzt kommt ein wichtiger Hinweis der FAQ ins Spiel: Diese Möglichkeit klappt nicht, wenn $config_xhtml=true und $config_counter_enabled=true ist.

Edit 19.05.2012: Wie ich gerade erst bemerkt habe, wurde dieses Problem bereits in Revision 242 behoben und ist damit seit CrazyStat 1.70 nicht mehr gültig. Der Aufwand für Möglichkeit 1 ist daher unangemessen, ich würde jedem in diesem Fall zu Möglichkeit 2 oder 3 raten.

Falls dies bei dir der Fall ist, wäre die einfachst Möglichkeit, die "pseudo-XHTML-Variante" zu aktivieren:

Code: Select all

$config_rel_path="/stat/"; // dann kannst du dir set_rel_path und config_different_rel_paths sparen
$config_xhtml=false; // wir deaktivieren den "komplett validen XHTML-Modus"
$config_xhtml_old=true; // wir aktivieren den alternativen XHTML-Modus (verwendet document.write, daher nur bedingt valide)
Soweit die Möglichkeit 2 aus der FAQ. Mit Möglichkeit 3 hast du nichts gewonnen.

Wenn du lieber richtig valides XHTML hast, musst du Möglichkeit 1 wählen.
Das bedeutet hier, wir müssen zunächst

Code: Select all

$config_different_rel_paths=true;
$config_xhtml=true; // wir aktivieren den "komplett validen XHTML-Modus"
setzen. Jetzt müssen wir $set_rel_path immer so setzen, dass der Pfad stimmt.

Code: Select all

$current_dirname=dirname($_SERVER['SCRIPT_NAME']);
// jetzt haben wir den Pfad, beispielsweise /2012/04/26/have-we-lost-the-art-of-conversation/
// um zum Haupt-verzeichnis zurück zu kommen, müssen wir für jeden Ordner ein "../" erzeugen
// also im Beispiel $set_rel_path="../../../../stat/"
$number_of_slashes=substr_count($current_dirname,"/");
$set_rel_path="";
for($i=1; $i<$number_of_slashes; $i++) {
// wir starten bei 1 weil wir ein .. weniger benötigen als Slashs da sind
$set_rel_path.="../";
}
$set_rel_path.="stat/";
include_once('stat/src/include.php');
Ich hoffe das passt soweit. Ich muss gestehen, ich habe es nicht probiert.

Melde dich bitte, was du probiert hast und wie es geklappt hat. Bei Bedarf schaue ich es mir noch einmal genauer an.

Viel Erfolg!
Christopher
I try to support my users as best as I can.
Please support me and CrazyStat in return. Thanks.

Astrid
Posts: 27
Joined: Wed May 09, 2012 6:34 pm

Re: CrazyStat unter Wordpress

Post by Astrid » Wed May 09, 2012 10:35 pm

erstmal vielen Dank für die ausführliche Antwort. Den counter hab ich deaktiviert.Ich werde das morgen mal genauer durchlesen und nochmal probieren. Es sieht gerade so aus, dass ich einen Serverwechsel vorgenommen habe aber der neue Server noch nicht auf meineseite.de verweist. Wahrscheinlich während du geschrieben hast, habe ich einen anderen interessanten Artikel gefunden nämlich http://faq.wpde.org/wordpress-trotz-ins ... -aufrufen/ DAS könnte evtl. die ultimative Lösung sein,und ich müsste gar nix weiter machen und im ParallelsConfixx auch nicht mehr auf den Ordner "wordpress" weiterleiten. Ich werde weiter berichten in den nächsten Tagen :D

Astrid_copy

Re: CrazyStat unter Wordpress

Post by Astrid_copy » Thu May 17, 2012 5:44 pm

So, ich melde mich zurück und berichte: nachdem ich erst völlig verzweifelt war und CrazyStat nur manchmal loggte, aber eben nicht alles hab ich den Fehler gefunden der allerdings wohl nichts direkt mit CrazyStat zu tun hatte. Ich bin folgendermaßen vorgegangen.

1.Ins Hauptverzeichnis "html" des Servers einen Ordner namens "wordpress" erstellt und darin Wordpress installiert.

2. Ins Haupverzeichnis CrazyStat in den Ordner "stat" installiert.

3. Nach dieser Anleitung vorgegangen. Dabei ist ganz wichtig ,dass wenn man wie ich, schon vorher Wordpress in einem Unterverzeichnis hat, die .htacess aus diesem Unterverzeichnis unbedingt kopiert und damit die .htacess im Hauptverzeichnis überschreibt. Da im Hauptverzeichnis "html" schon eine von Wordpress erstellte .htacess war, dachte ich fälschlicherweise ich könne diese beibehalten, was zur Folge hatte dass CrazyStat nicht alles loggte. Ansonsten die index.php auch kopieren und wie im Artikel beschrieben verändern. (das hatte ich allerdings gemacht).

4. In die footer.php vom entsprechenden Theme vor </body> folgenden code kopieren:

Code: Select all

<?php $set_rel_path="/stat/";
@include_once("stat/src/include.php"); ?>
5. Möchte man wie ich, dass auch Anmeldebildschirm von Wordpress mit CrazyStat geloggt wird.(bspw. um zu sehen ob da jemand fremdes darauf zugreift so habe ich den code

Code: Select all

<?php $set_rel_path="/stat/";
@include_once("../stat/src/include.php"); ?>
in die wp-login.php ganz unten in einer neue Zeile hinzugefügt.

Damit wird jetzt endlich alles so geloggt wie es sein sollte. In der config.php von CrazyStat habe ich weiterhin folgendes stehen:

Code: Select all

$config_different_rel_paths=true;
$config_stat_files_hide_dir=false;
$config_mehrere_rel_pfade=true

Den counter habe ich via config.php eh schon deaktiviert gehabt.
Eine modrewrite-basierte Lösung, die Unterordner simuliert habe ich ebenfalls nicht, sondern meine Permanentlinks werden aus Artikelname ( /%postname%/ ) generiert.

Das einzige "kleine" Problem was ich jetzt noch habe ist dass beim Aufruf von CrazyStat fast immer nach der Anmeldung diese Fehlermeldung erscheint:"Eine Cache-Datei scheint beschädigt zu sein. Bitte tun Sie folgendes um das Problem zu lösen: Cache löschen"
CrazyStat-cachedatei.png
Ich habe allerdings festgestellt dass dies NUR auf dem neuen Server passiert, obwohl ansonsten alles identisch ist wie auf dem alten Server. Ich vermute ganz stark dass es an der php Version liegt. Alter Server hat PHP Version 5.2.14 und neuer Server hat PHP Version 5.3.5.Vielleicht gibt es hierfür auch noch eine Lösung?

Christopher
Site Admin
Posts: 150
Joined: Sat Mar 03, 2012 10:30 pm
Location: Germany

Re: CrazyStat unter Wordpress

Post by Christopher » Thu May 17, 2012 5:46 pm

Hallo Astrid,

zunächst einmal vielen lieben Dank für deine ausführliche Erklärung, wie du dein Problem gelöst hast. Ich hoffe dies hilft noch dem ein oder anderen.

Übrigens: $config_mehrere_rel_pfade ist veraltet, es gibt nur noch $config_different_rel_paths. Bist du irgendwo in der Dokumentation auf die veraltete Einstellung gestoßen?

---- EDIT ---

Ich habe das Thema geteilt, da es ja nicht mehr um CrazyStat unter Wordpress geht.
Thema zur Cache-Problematik
I try to support my users as best as I can.
Please support me and CrazyStat in return. Thanks.

schmatzler

Re: CrazyStat unter Wordpress

Post by schmatzler » Mon Jun 30, 2014 8:35 pm

Jetzt müssen wir $set_rel_path immer so setzen, dass der Pfad stimmt.

Code: Select all

    $current_dirname=dirname($_SERVER['SCRIPT_NAME']);
    // jetzt haben wir den Pfad, beispielsweise /2012/04/26/have-we-lost-the-art-of-conversation/
    // um zum Haupt-verzeichnis zurück zu kommen, müssen wir für jeden Ordner ein "../" erzeugen
    // also im Beispiel $set_rel_path="../../../../stat/"
    $number_of_slashes=substr_count($current_dirname,"/");
    $set_rel_path="";
    for($i=1; $i<$number_of_slashes; $i++) {
    // wir starten bei 1 weil wir ein .. weniger benötigen als Slashs da sind
    $set_rel_path.="../";
    }
    $set_rel_path.="stat/";
    include_once('stat/src/include.php');
Ich hoffe das passt soweit. Ich muss gestehen, ich habe es nicht probiert.
Ich habe es probiert! :) Es ist fast richtig, allerdings gibt $_SERVER['SCRIPT_NAME'] immer index.php zurück. Besser ist:

Code: Select all

$current_dirname=$_SERVER['REQUEST_URI'];
Damit bekomme ich immer den vollen Pfad und die Slashes können auch gezählt werden :)

Astrid
Posts: 27
Joined: Wed May 09, 2012 6:34 pm

Re: CrazyStat unter Wordpress

Post by Astrid » Wed Apr 05, 2017 11:13 am

So, ich schreibe mal ein Update, da sich wohl etwas geändert hat unter wordpress und (zumindest bei mir) es nicht mehr funktioniert was ich dort schrieb.

1. Ich habe Wordpress zuerst ins Hauptverzeichnis "/httpdocs/" meines Webservers installiert. Unter Wordpress in wp-admin/options-general.php steht sowohl unter "WordPress-Adresse (URL)" als auch unter "Website-Adresse (URL)" die Adresse "https://meineseite.de" und dies bleibt auch so in Folge.
2. Ich habe ein Unterverzeichnis angelegt und zwar "/httpdocs/wordpress/" und alles vom Hauptverzeichnis in dieses neue "wordpress" Verzeichnis rein geschoben. Dort sieht die innerliegende .htaccess so aus:

Code: Select all

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
3. Ich habe ins Hauptverzeichnis "/httpdocs/" eine .htaccess angelegt gemäß dieser Anleitung mit folgendem Inhalt:

Code: Select all

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?meineseite.de$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?meineseite.de$
RewriteRule ^(/)?$ wordpress/index.php [L] 
</IfModule>
Wenn ich nun "meineseite.de" aufrufe, wird meine Wordpress Seite ganz normal angezeigt, als würde sie im Hauptverzeichnis "httpdocs" liegen.

In der footer.php meines Themes im Pfad "/httpdocs/wordpress/wp-content/themes/meintheme" hatte ich am Ende immer stehen:

Code: Select all

<?php wp_footer(); ?>
<?php $set_rel_path="/zaehler/";
@include_once("zaehler/src/include.php"); ?>
</body>
</html>
(ich habe zaehler von Schmatzler genommen, daher heißt es hier "zaehler" anstatt "stat" aber das sollte keinen Unterschied in der Funktionsweise machen)
Dies klappt jetzt nur noch bedingt, denn damit werden zwar alle Seiten wie zb. "wordpress.de/unterseite" geloggt, aber nicht die Hauptseite "meineseite.de"

Somit habe ich es abgeändert in:

Code: Select all

<?php wp_footer(); ?>
<?php $set_rel_path="/zaehler/";
@include_once("zaehler/src/include.php");
@include_once("../zaehler/src/include.php"); ?>
</body>
</html>
Da ich auch noch ein wordpress Plugin namens WPtouch habe, zur automatischen Darstellung meiner Seite mit Mobilphones habe ich den geänderten Code auch in die footer-top.php im Pfad "/httpdocs/wordpress/wp-content/plugins/wptouch/themes/bauhaus/default" eingefügt.

Nun wird wirklich jede Seite geloggt, sowohl die Hauptseite, als auch die Unterseiten und auch alle aufgerufenen Seiten unter Mobilphones.

Möchte man wie ich, dass auch Anmeldebildschirm von Wordpress mit CrazyStat geloggt wird.(bspw. um zu sehen ob da jemand fremdes darauf zugreift so habe ich den Code

Code: Select all

?>
<?php $set_rel_path="/zaehler/";
@include_once("../zaehler/src/include.php"); ?>
in die wp-login.php im Pfad "/httpdocs/wordpress" ganz unten in eine neue Zeile hinzugefügt.

Meine config.php von CrazyStat im Pfad "/httpdocs/zaehler/usr" sieht folgendermaßen aus:

Code: Select all

// +++++ General settings +++++

$config_rel_path="zaehler/"; // Path to CrazyStat
$config_xhtml=false; // CrazyStat included in XHTML?
$config_ip_anonymous=false; // anonymize IPs? (data privacy)
$config_respect_dnt=false; // do not record users that send Do-not-track header?
$config_different_rel_paths=true;
$config_stat_files_hide_dir=false;

// +++++ Statistic settings +++++

$config_stat_lang="de"; // Language (de/en/nl?)
$config_stat_weekdays_sunday_first=false; // Sunday first day of the week?
$config_stat_timezone="Europe/Berlin"; // Timezone
               // see http://php.net/manual/en/timezones.php for valid timezones

// +++++ Counter settings +++++

$config_counter_enabled=false; // Enable counter?
$config_counter_text=false; // Use textcounter?
$config_counter_file_name="ch_nicefont_wb.png"; // Counter-grafic
$config_counter_digits=6; // digits of the counter
$config_counter_transparency=false; // Enable transparency for counter?

// +++++ Disable backlink spammers by default +++++
$config_stat_referer_ignore=array("http://success-seo.com","http://best-seo-offer.com","http://buttons-for-website.com","http://100dollars-seo.com");
?>
Vielleicht kann dies jemandem nutzen. Vorschläge, falls ich etwas falsch machte, oder wenn noch etwas verbessert werden könnte, gerne hier schreiben ;)

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest