Søger en der kan lidt php ?

Litteratur d.  29. november. 2007, skrevet af bodyman
Vist: 461 gange.

bodyman
 
Elitebruger
Tilføjet:
29-11-2007 13:21:39
Svar/Indlæg:
2333/391
Hej,

Jeg har leget lidt med en counter til min hjemmeside www.amstaffen.dk

Jeg troede jeg havde fundet en PHP counter der virkede, og den talte også lystigt derud af, men så her for 1 time siden, har den nulstillet sig selv ?

Det er jo ikke skide smart, så håber på en herinde ville hjælpe en som mig der fatter minus af PHP :)
bodyman
 
Elitebruger
Tilføjet:
29-11-2007 13:44:21
Svar/Indlæg:
2333/391
<?
$ip = getenv("REMOTE_ADDR");
$fil = "count.txt";
$f = file($fil);
$antal = count($f);
// $yest = time() - 86400;
$o = "0";
$xidag = "f";
$idag = time();
$idag2 = date("Y F d, H:i");
while ($antal > $o) {
$streg = explode(" ", $f[$o]);
if ($ip == $streg[0]) {
$x = "t";
if ($streg[1] > $yest) {
$xidag = "t";
}
}
$o++;
}
if ($xidag == "f") {
$logg = fopen("$fil", "a");
fputs ($logg, "$ip $idag, $idag2\n");

fclose ($logg);
}
$f = file($fil);
$antal = count($f);
if ($x == "t") {

print "Hits i alt: $antal";
}
else {
print "Hits i alt: $antal";
}
?>

Den del jeg har markeret med fed, har jeg prøvet at fjerne, det er noget med at den skal skrive igen efter 24 timer ikke sandt ???

Eller ligger fejlen et andet sted ???


mian3010
 
Overclocker
Tilføjet:
29-11-2007 14:38:03
Svar/Indlæg:
29/1
Det ville være en hjælp hvis du fandt filen "count.txt" og skrev hvad der står i den 🙂


mian3010
 
Overclocker
Tilføjet:
29-11-2007 14:45:32
Svar/Indlæg:
29/1
Ligemeget, den linje du har kommenteret ud er bare den der sætter datoen en dag tilbage i den variabel.

Den tjekker om IP-adresen har været inde på siden i går, og skriver så det i loggen. Den tjekker også om den IP-adresse har været inde på siden i dag.

Bagefter skriver den til filen count.txt, højest sandsynligt IP-adressen, og til sidst tjekker den hvor mange linjer der er i filen count.txt og skriver det på siden.

Den eneste grund der kan være til at tælleren er blevet nulstillet er at filen count.txt er blevet slettet eller gjort ulæselig.

Håber det hjælper 🙂


bodyman
 
Elitebruger
Tilføjet:
29-11-2007 15:15:56
Svar/Indlæg:
2333/391
Hmmm virker meget underligt, for køre hjemmesiden selv på min egen nas server...

Og da jeg tjekkede count.txt filen stod der lige pludselig kun 4 linjer ?

Og jeg ved med 100 procent sikkerhed at jeg ikke har overskrevet den file...


bodyman
 
Elitebruger
Tilføjet:
29-11-2007 15:31:02
Svar/Indlæg:
2333/391

Det er hvad den notere ned i count.txt


mp_3
 
Elitebruger
Tilføjet:
29-11-2007 17:13:24
Svar/Indlæg:
3588/418
Er det smart at smide en masse IP'er ud i offentligheden?


micma18
 
Elitebruger
Tilføjet:
29-11-2007 17:29:22
Svar/Indlæg:
4120/115
Det er absolut den mest fundamentale måde at lave logging og counter på, vha. en text fil!!!!

Grunden til det er gået galt, er at du starter med at læse hele filens indhold, tilføje en linie, og så skrive hele lortet tilbage til filen igen...
Hvis der går det mindste galt i den procedure (og det gør der!), så mister du netop indholdet 😉

Lav en counter med mysql database, det er 100x bedre.



Kan laves meget simpelt, med en lignende funktion:

mysql_query("UPDATE `counter` SET `counter`=counter + 1 WHERE `id`='1'");


Men du skal self. lige have en database og oprettet en connection til den. 😉




EDIT:
Og du kan jo bare tilføje et ip adresse, og epoch felt, hvis du ønsker en form for logning...


bodyman
 
Elitebruger
Tilføjet:
30-11-2007 14:00:04
Svar/Indlæg:
2333/391
Og præcis 24 senere bliver listen nulstillet igen, og jeg har ikke rørt ved siden jeg skrev her igår...

Den må altså et eller andet sted nulstille den der counter :(

Noger der har en counter der virker ? og som registrer ip adresse, så den ikke bare bliver ved med at tæll hver gang samme bruger trykker på F5 tasten...

Jeg kan ikke hit ud af det der mysql hehe... dog er der indbygget mysql server i min nas server...


micma18
 
Elitebruger
Tilføjet:
30-11-2007 14:11:56
Svar/Indlæg:
4120/115
Som sagt, så dur det ikke det med text filen... Du risikere du mister det hele hver gang du har en besøgende! + det bliver langsommere og langsommere jo mere data den skal læse og skrive til den fil hele tiden!


Sæt dig hellere ind i database løsningen, det er så nemt at lave en logning af ip'er osv. Og hele systemet er lavet til sådan en slags lagring!
Og så er der jo også en millard ting bagefter du kan bruge din nye mysql viden til 😉


bodyman
 
Elitebruger
Tilføjet:
30-11-2007 22:38:12
Svar/Indlæg:
2333/391
Okay okay, jeg vil gerne rode lidt med det der mysql, min nas server understøtter det som sagt...

Men er der så en der melder sig frivilligt til evt at hjælpe mig? jeg aner ikke en skid af dette her, men vil rigtig gerne vide noget om det...

Evt. over msn? tror det vil være nemmest :)

Skriv evt. en privat besked til mig med jeres messenger adresse...


micma18
 
Elitebruger
Tilføjet:
30-11-2007 22:45:40
Svar/Indlæg:
4120/115
Download mysqladmin, så kan du meget nemt få et overblik over hvad der findes af databaser på din NAS, eller oprette en ny database og en counter tabel! 😉


bodyman
 
Elitebruger
Tilføjet:
30-11-2007 23:18:07
Svar/Indlæg:
2333/391
Ja men nu skal jeg først og fremmest få det her sql server til at virke først...

Nogen der har styr på dette til en Qnap T109 ???


bodyman
 
Elitebruger
Tilføjet:
30-11-2007 23:41:03
Svar/Indlæg:
2333/391
Kan sku ikke få det her til at køre...

Jeg har aktiveret mysql på min qnap, jeg har åbnet for port 3306.

Jeg har downloaded phpMyAdmin smidt det over i Qweb mappen som beskrevet, og prøvet at køre den setup guide de henviser til...

jeg får lavet den config file, og prøver at log på! men den siger hele tiden nedenstående...

phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.

Error
MySQL said:

#1045 - Access denied for user 'root'@'localhost' (using password: YES)



Fatter minus af det her...


bodyman
 
Elitebruger
Tilføjet:
02-12-2007 13:50:12
Svar/Indlæg:
2333/391
Op


bodyman
 
Elitebruger
Tilføjet:
10-12-2007 13:42:43
Svar/Indlæg:
2333/391
Okay efter at jeg har sat de to // foran skrift i fed som i #01, har den ikke nulstillet sig selv siden, så det bliver bare ved det, nemt og simpelt...

Jeg har rodet lidt med Mysql server på min nas server, men har opgivet og gider ikke bruge flere timer på noget jeg kun skulle bruge til en så simpelt funktion som en counter...