murb.com Hauptseite  •   Registrieren  •  SUCHE  •  FAQ  •  Mitgliederliste  •  Forenregeln  •  Login
Neue Antwort erstellen MySQL-Counter 2.0
Gehe zu Seite Zurück  1, 2, 3, 4, 5  Weiter
Firewolf
Administrator
Beiträge: 239
Antworten mit Zitat
Counter-Datei öffnen und jedes Vorkommen von
Code:
TYPE=MyISAM

ersetzen durch:
Code:
ENGINE=MyISAM


Es sollte zweimal im Code auftauchen.
Benutzer-Profile anzeigenAlle Beiträge von Firewolf anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchenICQ-Nummer
Actros
Gast
Antworten mit Zitat
Klasse klappt.

Jetzt würd ich noch gerne wissen wie ich das bewerkstelligen kann das, das Ergebnis vom Counter NICHT überall angezeigt wird wo ich ihn include
Ist dieses überhaupt möglich?
Actros
Gast
Antworten mit Zitat
Hat sich erledigt Wink
Zählt der Counter nur die Seite auf der er eingebunden wird?
Andy
Gast
Antworten mit Zitat
Hi

zwar habe ich eine eigene Statistik-Seite auf meiner Homepage auf der ich auch den Counter ausgebe. So hab ich also nur auf dieser Seite per iclude den Counter eingebunden.
Meine Frage ist nun zählt er dann auch nur die aufrufe der Statistik Seite?
Wie kann ich das anstellen dass er alle aufrufe meiner Homepage zählt auch wenn ich ihn auf einer unterseite anzeigen lasse?

Danke im Voraus!

Bye
Andy Smile
Re: Zählt der Counter nur die Seite auf der er eingebunden w
Firewolf
Administrator
Beiträge: 239
Antworten mit Zitat
Hey.

Andy hat Folgendes geschrieben:
Meine Frage ist nun zählt er dann auch nur die aufrufe der Statistik Seite?

Ja.

Andy hat Folgendes geschrieben:
Wie kann ich das anstellen dass er alle aufrufe meiner Homepage zählt auch wenn ich ihn auf einer unterseite anzeigen lasse?

Schau dir dazu die Variable $sqlc_show_output mal an. Du könntest diese Variable im Script auskommentieren und separat bei der Einbindung festlegen, ob der Counter ausgegeben werden soll. Zum Beispiel so:
Code:
<?php
$sqlc_show_output = false;
include("counter.php");
?>

Das machst du auf allen Seiten, die gezählt werden sollen. Auf der Statistik-Seite gibst du dann true an.
Benutzer-Profile anzeigenAlle Beiträge von Firewolf anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchenICQ-Nummer
Zähler
vloppy
Gast
Antworten mit Zitat
Warning: gethostbyaddr(): Address is not a valid IPv4 or IPv6 address kommt jetzt immer wat nu?
Re: Zähler
Firewolf
Administrator
Beiträge: 239
Antworten mit Zitat
vloppy hat Folgendes geschrieben:
Warning: gethostbyaddr(): Address is not a valid IPv4 or IPv6 address kommt jetzt immer wat nu?

Der Fehler sagt, dass die zu prüfende IP-Adresse keine gültige Adresse ist. Wenn das ein Einzelfall bei einer IP ist, kannst Du die Fehlermeldung einfach unterdrücken: gethostbyaddr in der counter.php suchen (Zeile 250) und ein @ davor schreiben. Das schaut dann so aus: @gethostbyaddr($g_ip_logs['ip'])

Ansonsten prüfen warum keine gültigen IP-Adressen geloggt werden.
Benutzer-Profile anzeigenAlle Beiträge von Firewolf anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchenICQ-Nummer
Danke
ibo
Gast
Antworten mit Zitat
Vielen Dank für den tollen Counter, so einen Counter habe ich schon lange gesucht.
Easy installation und funktioniert einwandfrei.
Counter
vloppy
Beiträge: 5
Antworten mit Zitat
seit zwei - drei Tagen stellt sich beim Counter Gestern immer auf 0, wie kann das???
Benutzer-Profile anzeigenAlle Beiträge von vloppy anzeigenPrivate Nachricht senden
Firewolf
Administrator
Beiträge: 239
Antworten mit Zitat
Das kann ich mir auch nicht erklären. Hast du in letzter Zeit Änderungen am Counter vorgenommen?
Benutzer-Profile anzeigenAlle Beiträge von Firewolf anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchenICQ-Nummer
Counter auf 0
vloppy
Beiträge: 5
Antworten mit Zitat
Nein, keine - hier zusehen, steht jetzt auf 1?? Da sind jeden Tag ca. 500 Leut drauf, die am nächsten Tag dann wieder auf o gesetzt sind (heute 1) www.grefrather-eg.de

hier counter php

<?php

/* MySQL-Counter from murb.com

* Version 2.0

*

* Website: http://www.murb.com

* Further information and help: http://www.murb.com/forum/viewtopic.php?t=2485

*

* This script is freeware.

*/



#### MySQL-Database access data ####



$db_sqlc_host = "localhost"; // database host (IP); standard "localhost"

$db_sqlc_name = "xxxxxxx"; // database name

$db_sqlc_user = "xxxxxx"; // username

$db_sqlc_pwd = "xxxxxx"; // password



#### Tables ####



$db_sqlc_counter = "sqlc_counter"; // table for counter data (today counts, yesterday counts,...)

$db_sqlc_iplog = "sqlc_iplog"; // table for IPs and timestamps



#### Settings ####



$sqlc_splitter = "&nbsp;&nbsp;|&nbsp;&nbsp;"; // chars to split counter data

$sqlc_ip_time = 900; // time (in seconds) of IP matters as unique user

$sqlc_online_time = 300; // time (in seconds) of IP matters as unique user beeing online

$sqlc_log_amount = 500; // amount of loggs (ip, timestamp) saved in database; should be at least: 3 * [expected visitors within [ip_time] seconds]

$sqlc_show_output = true; // determines to show output or not



/* layout of counter output; modify style-tag of div to fit output;

* do NOT remove or change the placeholder "[sqlc_counter_output]"!

*/

$sqlc_output_layout = "<div style=\"padding: 2px\">[sqlc_counter_output]</div>";



/* output of counter data; modify output labels;

* do NOT remove or change placeholders [~] (except for [sqlc_spliter])!

*/

$sqlc_output = "Online: [sqlc_online][sqlc_splitter]";

$sqlc_output .= "Onlinerekord: [sqlc_online_record][sqlc_splitter]";

$sqlc_output .= "Heute: [sqlc_today][sqlc_splitter]";

$sqlc_output .= "Gestern: [sqlc_yesterday][sqlc_splitter]";

$sqlc_output .= "Tagesrekord: [sqlc_day_record][sqlc_splitter]";

$sqlc_output .= "Gesamt: [sqlc_total]";





##################



/* Do not modify the code below if you don't know what you're doing! Smile */



function connectToDatabase($db_host, $db_user, $db_pwd) {

return @mysql_connect($db_host, $db_user, $db_pwd);

}



function selectDatabase($database_sqlc, $db_sqlc_name) {

return @mysql_select_db($db_sqlc_name, $database_sqlc);

}



function GetIP() {

if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))

$ip = getenv("HTTP_CLIENT_IP");

else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))

$ip = getenv("HTTP_X_FORWARDED_FOR");

else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))

$ip = getenv("REMOTE_ADDR");

else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))

$ip = $_SERVER['REMOTE_ADDR'];

else

$ip = "unknown";

return($ip);

}



$database_sqlc = connectToDatabase($db_sqlc_host, $db_sqlc_user, $db_sqlc_pwd);

if (!$database_sqlc) {

echo "Error: Cannot connect to database!<br>";

}

if (!selectDatabase($database_sqlc, $db_sqlc_name)) {

echo "Error: Cannot access required table!<br>";

}



// installation process

if (isset($_GET['action']) && $_GET['action'] == "install") {

$install_error = false;

$table_check_1 = @mysql_query("SELECT * FROM ".$db_sqlc_counter." WHERE id = '1'");

if (@mysql_num_rows($table_check_1) != 0) {

$install_error = true;

echo "The table &quot;".$db_sqlc_counter."&quot; already exists.<br>";

}

$table_check_2 = @mysql_query("SELECT * FROM ".$db_sqlc_iplog);

if (@mysql_num_rows($table_check_2) != 0) {

$install_error = true;

echo "The table &quot;".$db_sqlc_iplog."&quot; already exists.";

}

if ($install_error) {

exit; // shit happens

}

else {

mysql_query("CREATE TABLE ".$db_sqlc_counter." (

id int(10) NOT NULL default '0',

online_record int(20) NOT NULL default '0',

today int(20) NOT NULL default '0',

yesterday int(20) NOT NULL default '0',

day_record int(20) NOT NULL default '0',

total int(20) NOT NULL default '0',

pages_total int(20) NOT NULL default '0',

date int(20) NOT NULL default '0',

PRIMARY KEY (id)) TYPE=MyISAM", $database_sqlc) or die (mysql_error() . ": " . mysql_error() . "\n");



mysql_query("INSERT INTO ".$db_sqlc_counter." SET id = '1'", $database_sqlc);



mysql_query("CREATE TABLE ".$db_sqlc_iplog." (

id int(10) NOT NULL auto_increment,

ip varchar(254) NOT NULL default '',

timestamp int(20) NOT NULL default '0',

PRIMARY KEY (id)) TYPE=MyISAM", $database_sqlc) or die (mysql_error() . ": " . mysql_error() . "\n");



echo "Installation successful!";

exit;

}

}



// check the correctness of tables

$table_check_1 = @mysql_query("SELECT * FROM ".$db_sqlc_counter." WHERE id = '1'", $database_sqlc);

$table_check_2 = @mysql_query("SELECT * FROM ".$db_sqlc_iplog, $database_sqlc);

if (@mysql_num_rows($table_check_1) == 0) {

@mysql_query("INSERT INTO ".$db_sqlc_counter." SET id = '1'", $database_sqlc);

}

if (@mysql_num_rows($table_check_2) == 0) {

@mysql_query("INSERT INTO ".$db_sqlc_iplog." SET ip = '127.0.0.0'", $database_sqlc);

}

$table_check_3 = @mysql_query("SELECT * FROM ".$db_sqlc_counter." WHERE id = '1'", $database_sqlc);

$table_check_4 = @mysql_query("SELECT * FROM ".$db_sqlc_iplog, $database_sqlc);

if (@mysql_num_rows($table_check_3) == 0 || @mysql_num_rows($table_check_4) == 0) {

echo "Error: Tables are not installed correctly.<br>";

exit;

}



// counter process starts here

// counter script has to be included; otherwise print log data

if (substr(strrchr($_SERVER['SCRIPT_NAME'],"/"),1) != substr(strrchr(str_replace('\\', '/', __FILE__),"/"),1)) {

$current_ip = GetIP();

$fetch_current = mysql_fetch_array(mysql_query("SELECT * FROM ".$db_sqlc_counter." WHERE id = '1'", $database_sqlc));



// in case of "day-change"

if (date("d",time()) != $fetch_current['date']) {

mysql_query("UPDATE ".$db_sqlc_counter." SET date = '".date("d",time())."', yesterday = '".$fetch_current['today']."', today = '0' WHERE id = '1'", $database_sqlc);

$fetch_current = mysql_fetch_array(mysql_query("SELECT * FROM ".$db_sqlc_counter." WHERE id = '1'", $database_sqlc));

}



$user_still_logged = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS count FROM ".$db_sqlc_iplog." WHERE ((".time()." - timestamp) <= ".$sqlc_ip_time.") AND ip = '".mysql_real_escape_string($current_ip)."'", $database_sqlc));

/* possibilities in case of count == 0:

* - IP is not logged

* - more than [ip_time] seconds passed

* => user counts as new visitor

*/

if ($user_still_logged['count'] == 0) {



mysql_query("DELETE FROM ".$db_sqlc_iplog." WHERE ip = '".mysql_real_escape_string($current_ip)."'", $database_sqlc);

mysql_query("INSERT INTO ".$db_sqlc_iplog." SET ip = '".mysql_real_escape_string($current_ip)."', timestamp = '".time()."'", $database_sqlc);



if (($fetch_current['today'] + 1) > $fetch_current['day_record']) {

mysql_query("UPDATE ".$db_sqlc_counter." SET day_record = '".($fetch_current['today'] + 1)."' WHERE id = '1'", $database_sqlc);

}

mysql_query("UPDATE ".$db_sqlc_counter." SET today = today+1, total = total+1 WHERE id = '1'", $database_sqlc);

}

else {

// update time of user

mysql_query("UPDATE ".$db_sqlc_iplog." SET timestamp = '".time()."' WHERE ip = '".mysql_real_escape_string($current_ip)."'", $database_sqlc);

}



mysql_query("UPDATE ".$db_sqlc_counter." SET pages_total = pages_total+1 WHERE id = '1'", $database_sqlc);



$fetch_online_users = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS count FROM ".$db_sqlc_iplog." WHERE ((".time()." - timestamp) < ".$sqlc_online_time.")", $database_sqlc));



if ($fetch_online_users['count'] > $fetch_current['online_record']) {

mysql_query("UPDATE ".$db_sqlc_counter." SET online_record = '".$fetch_online_users['count']."' WHERE id = '1'", $database_sqlc);

}



// delete [10% of [log_amount]] logs if total amount of logs exceeds [log_amount]

// notice: 10% deletions at once to avoid frequent deletions

$check_log_amount = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS count FROM ".$db_sqlc_iplog, $database_sqlc));

if ($check_log_amount['count'] > $sqlc_log_amount) {

mysql_query("DELETE FROM ".$db_sqlc_iplog." ORDER BY id ASC LIMIT ".ceil($sqlc_log_amount * 0.1), $database_sqlc);

}



// print output?

if ($sqlc_show_output) {

$fetch_counter_data = mysql_fetch_array(mysql_query("SELECT * FROM ".$db_sqlc_counter." WHERE id = '1'", $database_sqlc));



$sqlc_output = str_replace("[sqlc_online]", $fetch_online_users['count'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_online_record]", $fetch_counter_data['online_record'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_today]", $fetch_counter_data['today'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_yesterday]", $fetch_counter_data['yesterday'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_day_record]", $fetch_counter_data['day_record'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_total]", $fetch_counter_data['total'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_hits]", $fetch_counter_data['pages_total'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_splitter]", $sqlc_splitter, $sqlc_output);



echo str_replace("[sqlc_counter_output]", $sqlc_output, $sqlc_output_layout);

}

}



// show counter data and logs

else {

$sqlc_log_splitter = "&nbsp;&nbsp;|&nbsp;&nbsp;";

$fetch_counter_data = mysql_fetch_array(mysql_query("SELECT * FROM ".$db_sqlc_counter." WHERE id = '1'", $database_sqlc));

$fetch_online_users = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS count FROM ".$db_sqlc_iplog." WHERE ((".time()." - timestamp) < ".$sqlc_online_time.")", $database_sqlc));



// in case of "day-change"

if (date("d",time()) != $fetch_counter_data['date']) {

mysql_query("UPDATE ".$db_sqlc_counter." SET date = '".date("d",time())."', yesterday = '".$fetch_counter_data['today']."', today = '0' WHERE id = '1'", $database_sqlc);

$fetch_counter_data = mysql_fetch_array(mysql_query("SELECT * FROM ".$db_sqlc_counter." WHERE id = '1'", $database_sqlc));

}



$sqlc_output = str_replace("[sqlc_online]", $fetch_online_users['count'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_online_record]", $fetch_counter_data['online_record'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_today]", $fetch_counter_data['today'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_yesterday]", $fetch_counter_data['yesterday'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_day_record]", $fetch_counter_data['day_record'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_total]", $fetch_counter_data['total'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_hits]", $fetch_counter_data['pages_total'], $sqlc_output);

$sqlc_output = str_replace("[sqlc_splitter]", $sqlc_log_splitter, $sqlc_output);



echo "<center>\n";

echo "<span style=\"font-family: verdana; font-size: 10px; font-weight: bold\">Counter Log-Informationen</span>\n";

echo "<div style=\"padding: 5px; width: 640px; border: 1px solid #000000; margin-top: 30px; font-family: verdana; font-size: 10px\">".$sqlc_output."</div>\n";



$check_log_amount = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS count FROM ".$db_sqlc_iplog." WHERE ip != '127.0.0.0'", $database_sqlc));

echo "<table width=\"650\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin-top: 20px; border: 1px solid #000000; font-family: Arial; font-size: 11px\">\n

<tr>\n

<td colspan=\"3\" align=\"center\" valign=\"top\" style=\"padding: 5px\">Die letzten ".$check_log_amount['count']." gespeicherten IP-Adressen</td>\n

</tr>\n";

if ($check_log_amount['count'] > 0) {

echo " <tr bgcolor=\"#E5E5E5\">\n

<td width=\"25%\" align=\"left\" valign=\"top\" style=\"padding: 5px; font-weight: bold\">IP</td>\n

<td width=\"25%\" align=\"left\" valign=\"top\" style=\"padding: 5px; font-weight: bold\">Datum</td>\n

<td width=\"50%\" align=\"left\" valign=\"top\" style=\"padding: 5px; font-weight: bold\">Hostname</td>\n

</tr>\n";

$get_ip_logs = mysql_query("SELECT * FROM ".$db_sqlc_iplog." WHERE ip != '127.0.0.0' ORDER BY timestamp DESC", $database_sqlc);

$i = 0;

while ($g_ip_logs = mysql_fetch_array($get_ip_logs)) {

$color_flag = "";

if (($i % 2) != 0) {

$color_flag = " bgcolor=\"#F5F5F5\"";

}

$i++;

echo " <tr".$color_flag.">\n

<td width=\"25%\" align=\"left\" valign=\"top\" style=\"padding: 5px\">".$g_ip_logs['ip']."</td>\n

<td width=\"25%\" align=\"left\" valign=\"top\" style=\"padding: 5px\">".date("d.m.Y, H:i:s", $g_ip_logs['timestamp'])."</td>\n

<td width=\"50%\" align=\"left\" valign=\"top\" style=\"padding: 5px\"><a href=\"http://whois.domaintools.com/".$g_ip_logs['ip']."\" target=\"_blank\" style=\"color: #000000\">".gethostbyaddr($g_ip_logs['ip'])."</a></td>\n

</tr>\n";

}

}

else {

echo " <tr>\n

<td colspan=\"3\" align=\"center\" valign=\"top\" style=\"padding: 10px\"><i>Keine IP-Adressen vorhanden.</i></td>

</tr>\n";

}

echo "</table>";

echo "</center>";

}



mysql_close($database_sqlc);

?>
Benutzer-Profile anzeigenAlle Beiträge von vloppy anzeigenPrivate Nachricht senden
Firewolf
Administrator
Beiträge: 239
Antworten mit Zitat
Ich kann dir leider nicht sagen, woran es liegt. Es ist etwas seltsam, dass alle anderen Anzeigen funktionieren... es könnte also am Kopieren des "Heute"-Wertes liegen, der beim Tageswechsel stattfindet. Wenn du dich mit PHP etwas auskennst, könntest du hier herumprobieren. Zum Beispiel den Wert in eine andere Tabelle schreiben lassen oder das ganze künstlich an einem Beispiel nachstellen, um den Fehler zu finden. Mehr fällt mir nicht ein.
Benutzer-Profile anzeigenAlle Beiträge von Firewolf anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchenICQ-Nummer
log
sink
Gast
Antworten mit Zitat
Hallo, super sache - Danke! So wie ich dein skript verstanden habe, wir die log datei vorerst nicht angezeigt - wie kann ich sie anzeigen lassen / bzw. in einer neuen seite anzeigen? danke und regards,
Firewolf
Administrator
Beiträge: 239
Antworten mit Zitat
Hallo sink,

welche Log-Datei meinst du?
Um den Log des Counters anzusehen, musst du diesen im Browser aufrufen (nach erfolgreicher Installation) und es wird dir ein Log angezeigt (siehe Eingangspost).
Benutzer-Profile anzeigenAlle Beiträge von Firewolf anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchenICQ-Nummer
log
sink
Gast
Antworten mit Zitat
danke fuer die schnelle antwort!! ich dachte eben auch, dass ein "counter_log.php" erstellt wird, kann die datei aber leider nicht finden..regards,
MySQL-Counter 2.0
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Alle Zeiten sind GMT + 1 Stunde  
Seite 2 von 5  

  
  
 Neue Antwort erstellen  
Powered by phpBB © phpBB Group
Design by phpBBStyles.com | Styles Database.
Content © murb.com - Forum