Silaz 0 Report post Posted November 28, 2003 Hallo, hat jemand eine ahnung wie die Zeit in php gezählt wird? also ich meine das hier dieser Eintrag sagt mir wenn weniger als ...? $btime = -600; ( 1 min?) $btime = -6000; ( 1 min?) ich hoffe es ich klar was ich genau meine ich weis sonst nicht wie ich es erklären soll. Danke Share this post Link to post
Anderl72 0 Report post Posted November 28, 2003 ich denke dass es sich um Sekunden handelt wegen dem timestamp aber schwören würd i net drauf Da müsstest du der $btime noch nachgehen, wo kommt die denn her ? Anderl Share this post Link to post
Christian 0 Report post Posted November 28, 2003 time ist in Sekunden seit 1.1.1970 00:00 daher ist 60 = 1 Minuten und 600 = 10 Minuten Share this post Link to post
Silaz 0 Report post Posted November 28, 2003 Also ich übe mich gerade ein bissel in PHP und raff es noch nicht wirklich Die Zeit hole ich mir von hier $time = time(); um sie später in eine Datei rein zuschreiben. aber nur die die innerhalb von 1 Min reigeschrieben wurden if($array[0] > $time -600 & $ip!=$array[1]) { fwrite ($fp, $write, 750); } } fclose($fp); $id = filesize($fname); naja das script funzt zwar nicht aber wissen würde ich es doch gerne Danke Share this post Link to post
Silaz 0 Report post Posted November 28, 2003 oh ok Danke *g du kannst doch nicht einfach posten wenn ich poste *tztz :P Share this post Link to post
Anderl72 0 Report post Posted November 28, 2003 irgendwie ist da m.E. ne Klammer zu viel im Code Wenn du den time() Befehl aufgerufst, wird wie Christian schon gesagt hat die Anzahl der abgelaufenen Sekunden seit dem 1.1.1970 ausgeworfen. Damit kannst du dann Rechnen Mit dem date() bzw. mktime() Befehl drehst du das ganze wieder um H = Stunde i = minute s = Sekunde m = Monat d = Tag Y = Jahr So ist in einer Minute $one_minute = mktime(date("H"), date("i") +1, date("s"), date("m"), date("d"), date("Y")) Vielleicht ist es bisserl klarer geworden :D Share this post Link to post
Silaz 0 Report post Posted November 28, 2003 (edited) Ja Danke. Der Code funktioniert jetzt... ja ich weis das ist ein IPB support und das hier hat damit nix zu tun aber ...wo soll ich den hin *heul* *fg könnt ja mal drüberschauen und evtl. verbesserungen posten Es ist ein User Online Script $fname="/home/virtual/userlog/userlog.dat"; $count=0; $time = time(); $ip = getenv(REMOTE_ADDR); $text=$time."|".$ip."\n"; $neline = file($fname); $fp = fopen($fname , "w"); ftruncate ($fp, 0); rewind($fp); foreach($neline as $write) { $array = explode("|",$write); if($ip==rtrim($array[1])){$ityes=1;} //hier die Zeit angabe -600 Innerhalb 1 minute und -6000 Innerhalb 10 minuten. if($array[0] > $time -600 & $ip!=$array[1]) { fwrite ($fp, $write, 600); } } fclose($fp); $id = filesize($fname); if($ityes!=1 or $id==0){ $file = fopen($fname,"a"); flock($file,2); fwrite($file,$text,750); flock($file,3); fclose($file); } for($x=0;$x<count($neline);$x++){$count=$count+1;} echo '<span class=userlog>Derzeit '; echo $count; echo ' User online</span>' Edited November 28, 2003 by Silaz Share this post Link to post
Christian 0 Report post Posted November 28, 2003 Ich würde der Übersicht wegen ein paar mehr Klammern setzen, auch um Fehlinterpretationen seitens des php Interpreters zu vermeiden: if( ($array[0] > ($time -600)) & ($ip!=$array[1]) ) { fwrite ($fp, $write, 750); } } fclose($fp); $id = filesize($fname); Ich persönlich habe zumindest festgestellt, dass ich so später wesentlich schneller meinen eigenen Code wieder verstehe. Der Code funktioniert jetzt... ja ich weis das ist ein IPB support und das hier hat damit nix zu tun aber ...wo soll ich den hin *heul* *fg Ich glaube, hier hat niemand was dagegen, ganz im Gegenteil :) Share this post Link to post
Silaz 0 Report post Posted November 28, 2003 (edited) Danke habs geändert und nun baue ich noch einen text Counter dahinein. Werde mich bei problemen wieder vertrausensvoll an euch wenden THX EDIT/ nene´da editiert er mal wieder rum Habe den anderen Beitrag wie gewünscht gelöscht, Christian Edited November 28, 2003 by Christian Share this post Link to post