You are not logged in.

wcf.regNote.message

Opi62

Trainee

  • "Opi62" started this thread

Posts: 91

Location: 127.0.0.1

  • Send private message

1

Wednesday, October 14th 2009, 3:03pm

Problehm mit Statistic Counter auf mysql basis

Hi @all
Ich bin gerade dabei eine Webseiten Statistic für eine Gildenpage.

Das Script ist soweit auch funktions Fähig.

Leider habe ich noch einen Kleinen Fehler im Scrip.

Und zwar wir ein User beim Serven auf der Seite Trozdem weitergelistet.

Villeicht könnt ihr Euch es mal ansehn und Findedt den Fehler ich habe jetzt schon seit 5 tagen Rumprobiert ich komme aber leider nicht auf die Richtige Lösung.


[PHP]
function online_is()
{

$ipadresse = getenv ("REMOTE_ADDR");

$onlinesql = "SELECT * FROM es_where_is_online WHERE (ip = '".$ipadresse."') LIMIT 1";
$onlinequery = @mysql_query($onlinesql);
if(!$onlinequery)
{
die(mysql_error());
}
if(mysql_num_rows($onlinequery) <> 0)
{
/*IP und Datum mit Zeit Ändern*/
$online = @mysql_fetch_array($onlinequery);
$onlinetime = Date("d.m.Y H:i");
$onlineidsqlupdate = "UPDATE `guardian`.`es_where_is_online` SET `time` = '$onlinetime',
`name` = '".$_SESSION['user_online']."' WHERE (`es_where_is_online`. `ip` = '".$ipadresse."') LIMIT 1";
$onlineidsqlupdatequery = @mysql_query($onlineidsqlupdate);
if(!$onlineidsqlupdatequery)
{
echo mysql_error();
}
/*IP und Datum mit Zeit Ändern ende*/
}
else
{
/*IP Eintragen Fals nicht Vorhanden*/
$ipadresse = getenv ("REMOTE_ADDR");
$onlinetime = Date("d.m.Y H:i");
$onlineidsql = "INSERT INTO guardian.es_where_is_online (ip, time, name) VALUES ".
"('$ipadresse', '$onlinetime', '".$_SESSION['user_online']."')";
$onlineidquery = @mysql_query($onlineidsql);
if(!$onlineidquery)
{
echo mysql_error();
}
/*IP Eintragen Fals nicht Vorhanden ende*/
}
}

[/PHP]

Hier für Euch noch ein Link das Ihr euch die Seite mal ansehen könnt.

[url='http://evolution-scripting.ath.cx/shaiya/']The-Guardians-Of-Light[/url]

Die Statistic ist leider noch offline. Da ja wie beschrieben es noch ein Problehm dam mit Gibt.


Gruß Opi62

Prometheus

Administrator

Posts: 3,278

  • Send private message

2

Wednesday, October 14th 2009, 3:53pm

Ich versteh das Problem nicht genau. Mit dem Skript wird geprüft ob es die IP in der Datenbank gibt und die aktuelle Zeit aktualisiert. Wird das Skript auf jeder Seite ausgeführt dann wird der eintrag auch bei jedem Klick aktualisiert. Ist das denn falsch?
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Opi62

Trainee

  • "Opi62" started this thread

Posts: 91

Location: 127.0.0.1

  • Send private message

3

Wednesday, October 14th 2009, 4:18pm

Der Fehler ist das Er die Daten nicht Aktualisiert sondern das er Immer wieder einen Neuen Datensatz einträgt.

Das Script wird bei Jeder akutualisierung Ausgeführt.

Nur das er halt nach dem Überprüfen die Zeit nicht Akutuallisiert sondern Einfach einen Neuen eintrag in der Datenkank Erstellt.

Prometheus

Administrator

Posts: 3,278

  • Send private message

4

Wednesday, October 14th 2009, 5:49pm

Dann würd ich sagen erst mal ein echo $ipadresse; machen damit du siehst ob die IP vom Anwender überhaupt richtig ausgelesen wird. Musst halt mit echo bisl rum experimentieren damit du siehst an welcher Stelle da was schief geht.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Opi62

Trainee

  • "Opi62" started this thread

Posts: 91

Location: 127.0.0.1

  • Send private message

5

Wednesday, October 14th 2009, 6:12pm

Ja die IP Adresse Trägt er ja richtig ein.

Ich hab ja auch auf der Webseite ne IP Anzeige gessetzt und die ip wird Richtig übermittelt.

flo

Unregistered

6

Friday, October 16th 2009, 11:49am

also bei mir ist dein code leider nicht formatiert... ein großer PHP Tag wird vom forum anscheinend nicht interpretiert, ein kleines php tag aber schon....
und einrücken hilft ungemein beim lesen....

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function online_is() 
{ 
$ipadresse getenv ("REMOTE_ADDR"); 
$onlinesql "SELECT * FROM es_where_is_online WHERE (ip = '".$ipadresse."') LIMIT 1"$onlinequery = @mysql_query($onlinesql); 
if(!$onlinequery) 
{ 
die(mysql_error()); 
} 
if(mysql_num_rows($onlinequery) <> 0) 
{ 
/*IP und Datum mit Zeit Ändern*/ 
$online = @mysql_fetch_array($onlinequery); 
$onlinetime Date("d.m.Y H:i"); 
$onlineidsqlupdate "UPDATE `guardian`.`es_where_is_online` SET `time` = '$onlinetime', 
`name` = '".$_SESSION['user_online']."' WHERE (`es_where_is_online`. `ip` = '".$ipadresse."') LIMIT 1"$onlineidsqlupdatequery = @mysql_query($onlineidsqlupdate); 
if(!$onlineidsqlupdatequery) 
{ 
echo mysql_error(); 
/*IP und Datum mit Zeit Ändern ende*/ 
} 
else 
{ 
/*IP Eintragen Fals nicht Vorhanden*/ 
$ipadresse getenv ("REMOTE_ADDR"); 
$onlinetime Date("d.m.Y H:i"); 
$onlineidsql "INSERT INTO guardian.es_where_is_online (ip, time, name) VALUES ""('$ipadresse', '$onlinetime', '".$_SESSION['user_online']."')"$onlineidquery = @mysql_query($onlineidsql); 
if(!$onlineidquery) 
{ 
echo mysql_error(); 
} 
/*IP Eintragen Fals nicht Vorhanden ende*/ 
} 
} 
}
?>


hat die zeile nen effekt?

PHP Source code

1
$online = @mysql_fetch_array($onlinequery); 

ich blicke bei dir nich ganz durch sorry... das ist mir n variablen wirr warr....
aber zb diese zeilen:

PHP Source code

1
 $ipadresse getenv ("REMOTE_ADDR");  $onlinetime Date("d.m.Y H:i"); 

rufst du 2x im script auf.. das kannste einfach 1x vor den if abfragen machen... das nimmt halt rechenleistung in anspruch (merkt man nicht, weils so ein kleines script ist, aber ohne doppelte deklarierung ists halt performanter)
aber wo genau der fehler liegt, weiß ich jetzt so auf anhieb auch nicht
edit: Prometheus... wieso rückt der nicht ein? :(
wie kann ich dafür sorgen, dass der code auch hier im forum eingerückt wird?
habe halt wie man es machen soll statt TAB 4x Leerzeichen im Code.. das html die abschneidet hätte ich mir auch ma überlegen können ;)
und leerzeilen schneidet wbb auch raus... :/

Opi62

Trainee

  • "Opi62" started this thread

Posts: 91

Location: 127.0.0.1

  • Send private message

7

Wednesday, October 21st 2009, 11:45pm

erstmal danke.
Warum er mein hehe nicht Interplementiert weiß ich nicht.
Die ip hab ich ein 2test mal aufgerufen weil ich noch was anderes versucht hatte.

Die variable $onlinetime ist für das datum und die zeit da ich ja versuche eine session zu erzeugen die einen user automatisch nach 10 minuten ausloggt.

Sorry Wegen schreibfehlern aber ich bin heute nicht mehr so Richtig Fitt.

flo

Unregistered

8

Thursday, October 22nd 2009, 10:35am

schon klar, aber du definierst die ja doppelt, das is halt unnötig :P

ShaoKhan

www.Spiegelwelt.com

Posts: 393

Location: 127.0.0.1

Occupation: EDV Dienstleister

  • Send private message

9

Friday, October 23rd 2009, 10:36am

probier mal statt

PHP Source code

1
if(mysql_num_rows($onlinequery) <> 0

PHP Source code

1
if(mysql_affected_rows($onlinequery) > 0

zudem hast du überall das @ davor. Mach das mal zum testen wech, damit du evtl. Fehlermeldungen siehst. Die kannste wieder davor packen, wenn dein Script läuft.

Leben heisst - Narben tragen.

Opi62

Trainee

  • "Opi62" started this thread

Posts: 91

Location: 127.0.0.1

  • Send private message

10

Saturday, October 24th 2009, 9:31am

Vielen dank Für deinen tip Auf die idee bin ich leider auch schon gekommen.
Eine Fehlermeldung gibt es Leider nicht.

Ich denke mal eher im Moment das es daran liegt, da jeder Ja so gesehen Über Mehrere Server geht.

Sprich das Script reagiert zu Früh so das er denkt das die IP nicht Existiert, also das ich die IP lese zeit verzögern muss,
das er die IP 0,01 Sekunden später liest wenn der Wirkliche Nutzer fest Steht.

Das ist Jetzt erstmal nur ein Gedanke Testen konnte ich es leider noch nicht.

Gruß

Opi62

Opi62

Trainee

  • "Opi62" started this thread

Posts: 91

Location: 127.0.0.1

  • Send private message

11

Thursday, October 29th 2009, 9:27am

Ich habe das Ganze scirpt noch mal neu geschrieben aber irgendwie finde ich den fehler nicht.

Das Hauptsächliche problehm ist leider das ich auch mit var_dump(); Keine Fehler finde geschweige denn das ich irgendeine Fehler ausgabe beckomme.

Ich denke mal wenn ich es demnächst nicht Hinbeckommen sollte dann werde ich mir was anderes einfallen lass müssen.



Gruß Opi62

Similar threads

wcf.user.socialbookmarks.titel