PDA

Vollständige Version anzeigen : Counter


DanyLux
22.03.2003, 13:24
Hallo ich hab ein Counter programiert aber leider weiss ich nicht wie ich mit den cookies arbeiten soll vun den counter das hab ich noch nie gemacht wer kann mir helfen??? ich hoffe es ist mit cookies denn das was ich will ist das man nicht mein counterstand manipulieren kann in dem man refresh druckt zb :)))

Matthy
24.03.2003, 08:13
Hi.

Du solltest hinzufügen welche Möglichkeiten dir zur Verfügung stehen. Was unterstützt dein Webspace und wie ist dein Counter programmiert?

MFG,

Matthy.

DanyLux
24.03.2003, 15:39
Webspace zu hause mysql php :)

Counter code:

<?
include("include/modules/general.php");
connect_db();
function paintnumber($pNumber)
{
$printtext="<IMG src=\"Counter/" . $pNumber . ".gif\" hspace=1 width=9 height=14>";
print $printtext;
}
$sql = "UPDATE counter SET klicks=klicks+1";
mysql_query($sql) or die("Couldn't execute the query!");
$sql = "SELECT * FROM counter";
$result = mysql_query($sql) or die("Couldn't execute the query!");
$row = mysql_fetch_row($result);
$counter = $row[0];
mysql_close();

for ($i = 1; $i <= (6-strlen($counter)); $i++)
{
paintnumber(0);
}
for ($i = 1; $i <= (strlen($counter)); $i++)
{
$counter .= "";
paintnumber($counter[$i - 1]);
}
?>

Matthy
25.03.2003, 05:47
Hi.

Ich habe einmal einen Counter für meine HP geschrieben der auch php und mysql unterstützt. Die Zahl der Besuche selbst hab' ich aber in eine Textdatei geschrieben. Das ließe sich aber auch ändern.

Die Frage ist jetzt was du genau willst. Möchtest du, dass egal wann der User auf deiner HP war der Counter nicht hoch gezählt wird oder möchtest du im Prinzip nur eine Reload-Sperre.

Ich habe es damals so gemacht, dass mindestens 1 User dazwischen auf der HP sein musste, damit der Counter auch beim 1. User wieder um 1 hoch gezählt hat. Ist denk' ich sinnvoll.

MFG,

Matthy.

DanyLux
25.03.2003, 21:47
Ja deine Loesung gling auch gut aber die relod spere ist auch ziemlich gut, wenn du mir bei beiden loesiungen helfen koenntest waere gut. Danke

Matthy
26.03.2003, 09:04
Ich habe das wie folgt gelöst (wahrscheinlich geht es auch einfacher und besser)


<?
include("zugriff.php"); # Die Datei aufrufen mit der du die Verbindung zur DB herstellst
$IP = $REMOTE_ADDR;
$Browser = $HTTP_USER_AGENT;
$History = $HTTP_REFERER;
$timestamp = time();
$Datum = date("Y.m.d H:i:s",$timestamp);

$abfrage = "SELECT * FROM tabelle ORDER BY Datum DESC LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
$vergleich = $row->IP;

$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);
if($counterstand == "")
{
$counterstand = 0;
}

if ($vergleich == $IP) {
} else {
$counterstand++;
$rechnen = $counterstand % 10;
if ($rechnen == '0') {
$aktion = "counter";
include("benachrichtigung.php");
} else {
}
}
rewind($datei);
fwrite($datei, $counterstand);
fclose($datei);

$eintrag = "INSERT INTO tabelle
(Datum, IP, OS, Browser, History, BSaufl, BStiefe)
VALUES
('$Datum', '$IP', '$OS', '$Browser', '$History', '$BSaufl', '$BStiefe')"; # hier können unter anderem die Feldnamen der tabelle rausgelesen werden.

$eintragen = mysql_query($eintrag);
?>


Damit das funktioniert muss es eine counter.txt geben und eine tabelle mit den oben beschriebenen Feldern.

Der Quelltext ist schon etwas älter, aber vielleicht kannst du damit etwas anfangen.

MFG,

Matthy.