Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „counter (grmbl)“

blackout

Schaf im Wolfspelz

soo problem nummer 3...
hier im forum bin ich nicht fündig geworden und google... war etwas überkompetent, sodass ich da auch nix gefunden hab.

wie der titel schon sagt, ich hätte gern einen stinknormalen counter. ausgabe in ascii. ohne graphik, ohne "rothaarige benutzer unter 21 in den letzten 5+sqrt(17) minuten online"-statistik. einfach nur ein teil, dass bei jeder page impression eins draufrechnet.
versucht das mal zu ergooglen. wird man krank von.

wie dem auch sei, hat einer von euch zufällig nen link zu ner lösung? :)
 

SilentStormer

Nicht mehr ganz neu hier

Also ich hätte ne Lösung. Das Ganze basiert auf Einspeicherung in die Datenbank (mittels PHP).

Code:
<?php
   $mysqlhost="localhost";
   $mysqluser="username";
   $mysqlpasswd="passwort";
   $mysqldbname="datenbank";

   $link = @mysql_pconnect($mysqlhost, $mysqluser, $mysqlpasswd);
   if ($link == FALSE) {
     echo "

[b]Leider kann keine Verbindung zur Datenbank hergestellt werden. Bitte versuchen Sie es später noch einmal.[/b]</p>\n";
     exit();
   }
   mysql_select_db($mysqldbname);

// Wie lange soll IP als einmaliger Besucher gelten (in Minuten)?
$time_visits=120;
// Wie lange soll IP als aktiver Besucher gelten (in Minuten)?
$time_online=5;
// Name der Tabelle fuer die IPs
$db_name_ips='ip';
// Name der Tabelle fuer die Statistik selber
$db_name_values='counter';


// Loeschen
mysql_query("DELETE FROM $db_name_ips
             WHERE last_action<".(time()-$time_visits*60));

$result=mysql_query("SELECT ip
                     FROM   $db_name_ips
                     WHERE  ip='{$_SERVER['REMOTE_ADDR']}'");
// Zeitstempel aktualisieren
if (mysql_num_rows($result)>0) {
    mysql_query("UPDATE $db_name_ips
                 SET    last_action=".time()."
                 WHERE  ip='{$_SERVER['REMOTE_ADDR']}'");
}
// IP mit Zeitstempel eintragen
else {
    mysql_query("INSERT INTO $db_name_ips (ip, last_action)
                 VALUES ('{$_SERVER['REMOTE_ADDR']}', ".time().")");

    // Visits erhoehen
    mysql_query("UPDATE $db_name_values
                 SET    visits=visits+1");

    // Neue Zahl maximaler gleichzeitiger Besucher speichern
    $result=mysql_query("SELECT COUNT($db_name_ips.ip) AS c_ip,
                                $db_name_values.max_online_count
                         FROM   $db_name_ips,
                                $db_name_values
                         WHERE  $db_name_ips.last_action>=".(time()-$time_online*60)."
                         GROUP BY $db_name_values.max_online_count");
    $data_counter=mysql_fetch_assoc($result);
    if ($data_counter['c_ip']>$data_counter['max_online_count']) {
        mysql_query("UPDATE $db_name_values
                     SET    max_online_count={$data_counter['c_ip']},
                            max_online_time=".time());
    }
    $temp=$data_counter['c_ip'];
    unset($data_counter);
}

// Hits erhoehen
/*
mysql_query("UPDATE $db_name_values
             SET    hits=hits+1");
*/

// Aktuelle Daten auslesen
$result=mysql_query("SELECT *
                     FROM   $db_name_values");
$data_counter=mysql_fetch_assoc($result);

// Zahl Besucher online
$result=mysql_query("SELECT COUNT(ip)
                     FROM   $db_name_ips
                     WHERE  last_action>=".(time()-$time_online*60));
list($data_counter['online_count'])=mysql_fetch_row($result);

// Datum Formatieren
$tage = array("Sonntag","Montag","Dienstag","Mittwoch",
  "Donnerstag","Freitag","Samstag");

$monate = array(1=>"Januar",
                  2=>"Februar",
                  3=>"M&rz",
                  4=>"April",
                  5=>"Mai",
                  6=>"Juni",
                  7=>"Juli",
                  8=>"August",
                  9=>"September",
                  10=>"Oktober",
                  11=>"November",
                  12=>"Dezember");

$tag = date("w", $data_counter['date_start']);
$tag2 = date("w", $data_counter['max_online_time']);
$monat = date("n", $data_counter['date_start']);
$monat2 = date("n", $data_counter['max_online_time']);
$tag_ausgabe = $tage[$tag2];
$monat_ausgabe = $monate[$monat2];
?>
<?php echo "Besucher insgesamt: "; echo $data_counter['visits']; ?>
<?php echo "Gerade online: "; echo $data_counter['online_count']; ?>

Damit der Code funktioniert, muss du allerdings vorher eine Tabelle in deiner Datenbank anlegen.
Dazu einfach folgenden Code genau einmal ausführen (nicht öfter, sonst legt er dir mehrere Spalten an!!).

Code:
mysql_query("CREATE TABLE $db_name_ips (
    ip          CHAR(15) NOT NULL PRIMARY KEY,
    last_action INT)");
mysql_query("CREATE TABLE $db_name_values (
    hits                INT,
    visits              INT,
    max_online_count    INT,
    max_online_time     INT,
    date_start          INT)");
mysql_query("INSERT INTO $db_name_values (hits, visits, max_online_count, max_online_time, date_start)
             VALUES (0, 0, 1, ".time().", ".time().")");

Mhm, hoffe du kannst mit PHP zumindest ein wenig etwas anfangen.
 

blackout

Schaf im Wolfspelz

von php schreiben hab ich keine ahnung, aber code verstehen ist ja nicht wirklich schwer... von der struktur her ist php cpp ja ziemlich ähnlich.

um das script zu implementieren werd ich wohl n bisserl brauchen, aber das is ja kein problem

danke :)

ok noch ne doofe frage: is das nicht ein (gewaltiges) sicherheitsrisiko in einer datei auf dem server datenbank-name und -passwort gespeichert zu haben?
 
G

goromir

Guest

nö , warum? man kann die datei nicht aufrufen ... sie wird nur an den server codiert weitergegeben damit alles funzt aber selber kann man die datei net ausführen! und wenn man die datei doch ausführen würd, erhält man net den inhalt sondern insgesamt das, was sie machen würde, also den counter grob gesagt^^
 

2ter_Heiko

Nicht mehr ganz neu hier

Hier mal ein kleiner Textcounter:

In die Datei, die aufgerufen werden soll (mit der Endung: .php):
Code:
<span>
<?PHP echo (include("counter.inc")); ?>
</span>

Eine neue Datei im selben Ordner anlegen, mit dem Namen counter.inc, mit folgendem Inhalt:
Code:
<?php
$e = "wert.inc";
$d = fopen($e,"r");
$z = fgets($d,10);
fclose($d);
$z++;
$d = fopen($e,"w");
fwrite($d,$z);
fclose($d);
return $z;
?>

Danach fehlt nur noch eine Datei mit dem Namen wert.inc im selben Ordner.

mfg,
Heiko
 

blackout

Schaf im Wolfspelz

@goromir
hmm ok also sollte man auf jeden fall die dir-zugriffsrechte auf deny stellen, sonst kann ja einfach einer die scriptdatei laden...
ich komm noch nich so damit klar dass php rein serverseitig ist, obwohl ich das 100% weiß... nur verwechsel ich das ganz gern :)
 
B

Bjoern

Guest

diesen Counter kann ich empfelen...den habe ichauch.

"die Funktionen unseres kostenlosen Counter - Besucherzähler :
- kostenloser Counter für alle
- auch als "unsichtbarer Besucherzähler - Counter " einsetzbar
- keine Werbebannern im Counter
- relativ einfacher Einbindung des Counter
- umfangreiche Counter Statistik
- Counter kann auch Ihre Downloads zählen
- Counter - Besucherzähler ist direkt nach der Anmeldung verfügbar
- Übernahme des Counter Zählerstandes von anderen Besucherzählern
- die häufigsten Browser
- über welche Suchworte wurde man gefunden
- welche Betriebssysteme werden benutzt
- welche Bildschirm-Auflösungen benutzen Ihre User
.... und vieles vieles mehr"
 

blackout

Schaf im Wolfspelz

@silentstormers script

ich bekomm nen fehler -.-


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/scn/infinity_test/counter.php on line 32

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/scn/infinity_test/counter.php on line 53

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/scn/infinity_test/counter.php on line 72

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/scn/infinity_test/counter.php on line 78


ich interpretier den so, dass da ungültige argumente für die beiden funktionen verwendet werde, glaube aber, dass ich mich fatal irre ;)
was mach ich falsch?
 
H

HoLgAy

Guest

Ist die Datenbank denn korrekt mit den richtigen Tabellen etc.??

Füge mal an alle Zeilen die so aussehen:

Code:
$result=mysql_query("SELECT ip
                     FROM   $db_name_ips
                     WHERE  ip='{$_SERVER['REMOTE_ADDR']}'");

Folgendes hinten dran (or die.....):

Code:
$result=mysql_query("SELECT ip
                     FROM   $db_name_ips
                     WHERE  ip='{$_SERVER['REMOTE_ADDR']}'") or die ("Fehler: ".mysql_error());

Dies gibt dir eine "genaue" fehlermeldung zurück in der du besser sehen kannst, was nicht stimmt.
Also evtl. SQL-fehler oder Tabelle nicht da oder so ...

Dann schreib den Fehler hier nochmal rein.

greetZ

HoLgAy
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
174.479
Beiträge
2.578.001
Mitglieder
65.969
Neuestes Mitglied
_djpanda_
Oben