Zeitzonen-Problem

admin77
Hallo liebe Gemeinde,
habe ein hack für mein wbb-board (wer war da hack) eingebaut,
da der server in malaysia ist geht der hack irgendwie verkehrt,
nun habe ich es hinbekommen,daß wenigstens die zeit richtig dargestellt wird,da vorher die zeit von malaysia dargestellt wurde, jedoch ist die zeitumstellung für den neuen tag falsch.

Der Tag beginnt natürlich um 0:00 Uhr und dann erstellt der hack eine Liste wer an diesem tag online war und um welche Uhrzeit.

Aber wenn es bei uns 0:00 Uhr ist wird die Liste nicht neu erstellt,sprich es beginnt somit kein neuer Tag,dies geschieht erst um 18:00 Uhr unserer Zeit,
dann ist es in malaysia genau 0:00 Uhr.

Ich hoffe,daß mir jemand helfen kann um den schönheitsfehler zu behben,da etliche versuche auf irgendwelchen board nichts gebracht haben und ich das gefühl habe,daß man dazu ein php-experte sein muß.

wäre irgendwie cool,wenn man alles auf MEZ umstellen könnte,
ich selbst weiß leider nicht wie.

Hier ist der Code-Schnipsel nur des Wer war da-hacks aus der index.php,kann man da was machen,reicht das aus oder muß man da was anderes ändern?:

php:
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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
if ($showuservisited == 1) {
$membercount 0;
$invisiblecount 0;
$curdate strftime("%m %d %Y",time());
$date explode(" "$curdate);
$timestamp mktime(0,0,0,$date[0],$date[1],$date[2]);
unset($online);
$online = &new useronline($wbbuserdata['a_can_view_ghosts'], $wbbuserdata['buddylist']);
$result $db->unbuffered_query("SELECT u.userid, u.username, u.invisible, u.useronlinegroupid, u.lastactivity, g.useronlinemarking FROM bb".$n."_users u, bb".$n."_groups g WHERE u.useronlinegroupid=g.groupid AND u.lastactivity>=".$timestamp." ORDER BY u.username ASC"); 
while ($row $db->fetch_array($result)) {
if ($row['userid'] == 0) continue;$row['lastactivity'] = $row['lastactivity'] + (3600 18);
$membercount++;
if ($row['invisible'] == 1$invisiblecount++;
$online->user($row['userid'], htmlconverter($row['username']), $row['useronlinemarking'], $row['invisible'], true);
}
$uservisited $online->useronlinebit;
$totaluservisited $membercount;
if ($totaluservisited $rekord_visited) {
$rekord_visited $totaluservisited;
$rekordtime_visited time();
$db->unbuffered_query("UPDATE bb".$n."_options SET value='$rekord_visited' WHERE varname='rekord_visited'"1);
$db->unbuffered_query("UPDATE bb".$n."_options SET value='$rekordtime_visited' WHERE varname='rekordtime_visited'"1);
require("./acp/lib/class_options.php");
$option = &new options("acp/lib");
$option->write();
}
$rekorddate_visited formatdate($wbbuserdata['dateformat'], $rekordtime_visited);
$rekordtime_visited formatdate($wbbuserdata['timeformat'], $rekordtime_visited);
// format figures
if ($totaluservisited >= 1000$totaluservisited number_format($totaluservisited0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($invisiblecount >= 1000$invisiblecount number_format($invisiblecount0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($rekord_visited >= 1000$rekord_visited number_format($rekord_visited0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($totaluservisited == 1) {
$uservisited_BE $lang->items['LANG_START_USERVISITED_BE_ONE'];
$uservisited_USER $lang->items['LANG_START_USERVISITED_USER_ONE'];
}
else {
$uservisited_BE $lang->items['LANG_START_USERVISITED_BE'];
$uservisited_USER $lang->items['LANG_START_USERVISITED_USER'];
}
if ($membercount == 1$uservisited_MEMBERS $lang->items['LANG_START_USERONLINE_MEMBERS_ONE'];
elseif ($membercount 1$uservisited_MEMBERS $lang->items['LANG_START_USERONLINE_MEMBERS'];
else {
$uservisited_MEMBERS '';
$membercount '';
}
if ($invisiblecount == 1$uservisited_GHOSTS $lang->items['LANG_START_USERONLINE_GHOSTS_ONE'];
elseif ($invisiblecount 1$uservisited_GHOSTS $lang->get("LANG_START_USERONLINE_GHOSTS", array('$invisiblecount' => $invisiblecount));
else $uservisited_GHOSTS '';
$lang->items['LANG_START_USERVISITED'] = $lang->get("LANG_START_USERVISITED", array('$uservisited_BE' => $uservisited_BE'$membercount_visited' => $membercount'$uservisited_MEMBERS' => $uservisited_MEMBERS'$uservisited_GHOSTS' => $uservisited_GHOSTS'$uservisited_AND' => $uservisited_AND'$rekord_visited' => $rekord_visited'$uservisited_USER' => $uservisited_USER'$rekorddate_visited' => $rekorddate_visited'$rekordtime_visited' => $rekordtime_visited));
$lang->items['LANG_START_SHOWUSERVISITED'] = $lang->get("LANG_START_SHOWUSERVISITED", array('$uservisited_BE' => $uservisited_BE'$totaluservisited' => $totaluservisited'$uservisited_USER' => $uservisited_USER));
}


Ich wäre echt dankbar,wenn man mir weiterhelfen könnte.

MfG

Pablo
[kamui]
Versetehe ich dich richtig? Malaysische Zeit - 18h = unsere Zeit?

Dann versuch es mal mit folgendem Code anstatt deinem:
php:
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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
if ($showuservisited == 1) {
$membercount 0;
$invisiblecount 0;
$time floor(time()-(18*60*60));
$curdate strftime("%m %d %Y",$time);
$date explode(" "$curdate);
$timestamp mktime(0,0,0,$date[0],$date[1],$date[2]);
unset($online);
$online = &new useronline($wbbuserdata['a_can_view_ghosts'], $wbbuserdata['buddylist']);
$result $db->unbuffered_query("SELECT u.userid, u.username, u.invisible, u.useronlinegroupid, u.lastactivity, g.useronlinemarking FROM bb".$n."_users u, bb".$n."_groups g WHERE u.useronlinegroupid=g.groupid AND u.lastactivity>=".$timestamp." ORDER BY u.username ASC"); 
while ($row $db->fetch_array($result)) {
if ($row['userid'] == 0) continue;$row['lastactivity'] = $row['lastactivity'] + (3600 18);
$membercount++;
if ($row['invisible'] == 1$invisiblecount++;
$online->user($row['userid'], htmlconverter($row['username']), $row['useronlinemarking'], $row['invisible'], true);
}
$uservisited $online->useronlinebit;
$totaluservisited $membercount;
if ($totaluservisited $rekord_visited) {
$rekord_visited $totaluservisited;
$rekordtime_visited time();
$db->unbuffered_query("UPDATE bb".$n."_options SET value='$rekord_visited' WHERE varname='rekord_visited'"1);
$db->unbuffered_query("UPDATE bb".$n."_options SET value='$rekordtime_visited' WHERE varname='rekordtime_visited'"1);
require("./acp/lib/class_options.php");
$option = &new options("acp/lib");
$option->write();
}
$rekorddate_visited formatdate($wbbuserdata['dateformat'], $rekordtime_visited);
$rekordtime_visited formatdate($wbbuserdata['timeformat'], $rekordtime_visited);
// format figures
if ($totaluservisited >= 1000$totaluservisited number_format($totaluservisited0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($invisiblecount >= 1000$invisiblecount number_format($invisiblecount0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($rekord_visited >= 1000$rekord_visited number_format($rekord_visited0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($totaluservisited == 1) {
$uservisited_BE $lang->items['LANG_START_USERVISITED_BE_ONE'];
$uservisited_USER $lang->items['LANG_START_USERVISITED_USER_ONE'];
}
else {
$uservisited_BE $lang->items['LANG_START_USERVISITED_BE'];
$uservisited_USER $lang->items['LANG_START_USERVISITED_USER'];
}
if ($membercount == 1$uservisited_MEMBERS $lang->items['LANG_START_USERONLINE_MEMBERS_ONE'];
elseif ($membercount 1$uservisited_MEMBERS $lang->items['LANG_START_USERONLINE_MEMBERS'];
else {
$uservisited_MEMBERS '';
$membercount '';
}
if ($invisiblecount == 1$uservisited_GHOSTS $lang->items['LANG_START_USERONLINE_GHOSTS_ONE'];
elseif ($invisiblecount 1$uservisited_GHOSTS $lang->get("LANG_START_USERONLINE_GHOSTS", array('$invisiblecount' => $invisiblecount));
else $uservisited_GHOSTS '';
$lang->items['LANG_START_USERVISITED'] = $lang->get("LANG_START_USERVISITED", array('$uservisited_BE' => $uservisited_BE'$membercount_visited' => $membercount'$uservisited_MEMBERS' => $uservisited_MEMBERS'$uservisited_GHOSTS' => $uservisited_GHOSTS'$uservisited_AND' => $uservisited_AND'$rekord_visited' => $rekord_visited'$uservisited_USER' => $uservisited_USER'$rekorddate_visited' => $rekorddate_visited'$rekordtime_visited' => $rekordtime_visited));
$lang->items['LANG_START_SHOWUSERVISITED'] = $lang->get("LANG_START_SHOWUSERVISITED", array('$uservisited_BE' => $uservisited_BE'$totaluservisited' => $totaluservisited'$uservisited_USER' => $uservisited_USER));
}
admin77
Die malaysische Zeit geht 6 Stunden vor,
Wenn bei uns 18:00 ist,so ist es in Malaysia 0:00 Uhr und ein neuer Tag bricht ein,daher die neue Liste im wer war da hack.
Mithin sind wir 6 Stunden zurück,siehe dir meinen code an,
die zeit geht dann richtig aber der hack richtet sich,auch wenn die zeit richtig angezeigt wird,an die malaysische zeit,so daß um 18:00 unserer zeit und der zeit aufm Board,was ja eingestellt worden ist,siehe code,ein neue Tag einbricht,
obwohl wir noch 6 Stunden hätten.
[kamui]
php:
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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
if ($showuservisited == 1) {
$membercount 0;
$invisiblecount 0;
$time floor(time()-(6*60*60));
$curdate strftime("%m %d %Y",$time);
$date explode(" "$curdate);
$timestamp mktime(0,0,0,$date[0],$date[1],$date[2]);
unset($online);
$online = &new useronline($wbbuserdata['a_can_view_ghosts'], $wbbuserdata['buddylist']);
$result $db->unbuffered_query("SELECT u.userid, u.username, u.invisible, u.useronlinegroupid, u.lastactivity, g.useronlinemarking FROM bb".$n."_users u, bb".$n."_groups g WHERE u.useronlinegroupid=g.groupid AND u.lastactivity>=".$timestamp." ORDER BY u.username ASC"); 
while ($row $db->fetch_array($result)) {
if ($row['userid'] == 0) continue;$row['lastactivity'] = $row['lastactivity'] + (3600 18);
$membercount++;
if ($row['invisible'] == 1$invisiblecount++;
$online->user($row['userid'], htmlconverter($row['username']), $row['useronlinemarking'], $row['invisible'], true);
}
$uservisited $online->useronlinebit;
$totaluservisited $membercount;
if ($totaluservisited $rekord_visited) {
$rekord_visited $totaluservisited;
$rekordtime_visited time();
$db->unbuffered_query("UPDATE bb".$n."_options SET value='$rekord_visited' WHERE varname='rekord_visited'"1);
$db->unbuffered_query("UPDATE bb".$n."_options SET value='$rekordtime_visited' WHERE varname='rekordtime_visited'"1);
require("./acp/lib/class_options.php");
$option = &new options("acp/lib");
$option->write();
}
$rekorddate_visited formatdate($wbbuserdata['dateformat'], $rekordtime_visited);
$rekordtime_visited formatdate($wbbuserdata['timeformat'], $rekordtime_visited);
// format figures
if ($totaluservisited >= 1000$totaluservisited number_format($totaluservisited0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($invisiblecount >= 1000$invisiblecount number_format($invisiblecount0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($rekord_visited >= 1000$rekord_visited number_format($rekord_visited0""$lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($totaluservisited == 1) {
$uservisited_BE $lang->items['LANG_START_USERVISITED_BE_ONE'];
$uservisited_USER $lang->items['LANG_START_USERVISITED_USER_ONE'];
}
else {
$uservisited_BE $lang->items['LANG_START_USERVISITED_BE'];
$uservisited_USER $lang->items['LANG_START_USERVISITED_USER'];
}
if ($membercount == 1$uservisited_MEMBERS $lang->items['LANG_START_USERONLINE_MEMBERS_ONE'];
elseif ($membercount 1$uservisited_MEMBERS $lang->items['LANG_START_USERONLINE_MEMBERS'];
else {
$uservisited_MEMBERS '';
$membercount '';
}
if ($invisiblecount == 1$uservisited_GHOSTS $lang->items['LANG_START_USERONLINE_GHOSTS_ONE'];
elseif ($invisiblecount 1$uservisited_GHOSTS $lang->get("LANG_START_USERONLINE_GHOSTS", array('$invisiblecount' => $invisiblecount));
else $uservisited_GHOSTS '';
$lang->items['LANG_START_USERVISITED'] = $lang->get("LANG_START_USERVISITED", array('$uservisited_BE' => $uservisited_BE'$membercount_visited' => $membercount'$uservisited_MEMBERS' => $uservisited_MEMBERS'$uservisited_GHOSTS' => $uservisited_GHOSTS'$uservisited_AND' => $uservisited_AND'$rekord_visited' => $rekord_visited'$uservisited_USER' => $uservisited_USER'$rekorddate_visited' => $rekorddate_visited'$rekordtime_visited' => $rekordtime_visited));
$lang->items['LANG_START_SHOWUSERVISITED'] = $lang->get("LANG_START_SHOWUSERVISITED", array('$uservisited_BE' => $uservisited_BE'$totaluservisited' => $totaluservisited'$uservisited_USER' => $uservisited_USER));
}


Probier es mal so
admin77
Wo ist der Unterschied zu meinem Code?
MfG
[kamui]
php:
1:
2:
$time floor(time()-(6*60*60));
$curdate strftime("%m %d %Y",$time);


Damit nehme ich die Serverzeit ( time() ) und reduziere die um 6 Stunden ( in Sekunden wird das gemessen Augenzwinkern )
admin77
Zitat:
Ich habe nur gefragt,weil das keine Änderung gebracht hat,
ich meine,daß die Liste des wer war da hacks sich nicht geändert hat (Leere Liste ab 0:00 Uhr),
ich warte mal bis 18:00 Uhr ab,
vorher gasbs um die Zeit immer eine neue Liste und spätestens um 0:00
MEZ wird man sehen,ob das was gebracht hat,
ich danke dir für deine mühe.werde mich dann melden.
MfG


So kurzreport:

Um 18:00 Uhr MEZ wurde schon mal keine neue Liste erzeugt,
das ist schonmal gut.
um 0:00 Uhr MEZ sollte eine neu Liste erstellt werden,wurde auch,aber es wurden nicht nur die user,die sich um 0:00 Uhr und später eingeloggt haben
in der Liste angezeigt sondern alle User die sich seit 18:00 Uhr MEZ des Vortages eingeloggt hatten. (0:00 Malaysischer Zeit)

Hmmmm
Was ist bloß falsch gelaufen
[kamui]
Ich kann mir am Wochenende den Hack nochmal genauer anschauen, aber jetzt konkret nicht weiterhelfen ... Vielleicht hilft dir ja ein anderer netter Y******-User derweil Augenzwinkern
Hamsterinfos
verwirrt verwirrt verwirrt Warum ein Server in Malaysia verwirrt verwirrt verwirrt
admin77
Zitat:
Original von Stubsnase
verwirrt verwirrt verwirrt Warum ein Server in Malaysia verwirrt verwirrt verwirrt


LOL,
ich mache schon nichts illegales,
es geht um die malaysische Küche,Rezepte etc...
ist nur die auch der sprache mächtig sind,
alternativ gibts dieses forum:
http://www.malaysiaforum.de/html/modules...rum.php?forum=8
für deutschsprechende.
Die malaysische Küche ist super lecker,
schau dich im oberen forum mal um,
gibts ne menge interesaantes.


Zu meinem problem:
Die Zeit im wer war da hack spinnt imer noch.... verwirrt
chill-underground
Hi,

ich habe genau das selbe Problem, nur mein Forum liegt auf einem Server in den USA^^ Der code von meinem Hack ist wie folgt:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
/* ############## USER HEUTE ############## */
$usertoday=0;
$usertodaybit='';
$result $db->query("SELECT lastactivity, username, userid, invisible FROM bb".$n."_users ORDER BY lastactivity DESC");
while($row $db->fetch_array($result)) {
 $zeit date("dmY"$row['lastactivity']);
 $jetzt date("dmY");
 $last date('H:i:s',$row['lastactivity']);
 if(!$row['invisible'] && $zeit==$jetzt) {
  $usertoday++;
  if($usertoday=="1") {
  $war 'war';
  $reg 'registrierter';
  } else {
  $war 'waren';
  $reg 'registrierte';
  }
  if(isset($usertodaybit) && $usertodaybit != ''$usertodaybit .= ', ';
  eval ("\$usertodaybit .= \"".$tpl->get("index_useronline").' (zuletzt um '.$last.')'."\";");
 }
}
/* ############## USER HEUTE ############## */


Bitte um Hilfe.

edit: Hat sich erledigt^^

MfG

BlackDuck