ip.php PHP: <?php header('Content-type: text/plain;charset=UTF-8'); $log = 'log.dat'; $time = time(); $fp = fopen($log, 'a'); fputs($fp, "{$_SERVER['REMOTE_ADDR']}:{$time}\n"); fclose($fp); $ips = file($log); $print = $time = array(); foreach($ips as $ip) { list($_ip, $_time) = explode(':', trim($ip)); $print[$_ip] = $_ip; $time[$_ip] = $_time; } $max_time = time() - 300; $print = array_reverse($print); foreach($print as $ip) { if($time[$ip] > $max_time) echo $ip, ' посетил страницу в ', date('h:i:s', $time[$ip]), "\n"; } ?> Посмотри тут http://stas.me/ip.php log.dat Code: 127.0.0.1:1234567890 127.0.0.2:1234567890 127.0.0.3:1234567890 127.0.0.4:1234567890 127.0.0.1:1234567890 127.0.0.2:1234567890 127.0.0.4:1234567890 127.0.0.5:1234567890 127.0.0.1:1234567890 127.0.0.5:1234567890 127.0.0.5:1234567890 127.0.0.6:1234567890 127.0.0.8:1234567890 127.0.0.5:1234567890 127.0.0.3:1234567890 127.0.0.2:1234567890
не не не понимаешь все изменения надо смотреть в вэб интерфейсе....будет таблица вида(время,дата,кто,какую таблицу,какой столбец,что изменилось) +)
svesve Вам уже предлагали сделать функцию обертку для стандартного mysql_query PHP: function mysql_logquery($query,$link=null) { if (!is_null($link) && is_resource($link)) {$tmp=mysql_query($query,$link);} else {$tmp=mysql_query($query);} // тут дополнительные запросы для внесения в таблицу лога, например $tolog="insert into log (`queries`) values '".mysql_real_escape_string($query)."'"; if (!is_null($link) && is_resource($link)) {@mysql_query($tolog,$link);} else {@mysql_query($tolog);} return $tmp; //возвращаем результат оригинального запроса }
Вопшем проблема с росчётом времени от старта скрипта и до конца,вопшем нужно сделать чтобы отсчитывалось от начала роботы скрипта и до конца с часами,минутами и секундами,вот уже битый час с знакомым сидим,и никак не допрем...как ето сделать? Просьба тем кто помогеть собрался учесть,что есле брать значение секунд,минут и часов роздельно (каждая в совей переменной) то неполучается изза того что после того как прошла одна минута,то значение секунд станет нолевым,и тогда будет отниматся значение времени того что в начале скрипта было от 0 уже....И есчё,есле брать в одной переменной ЧасМинСек и в конце так же,и отнимать,то тоже не получится потому что секунд и минут максимум 60 же,а не 100... тогда лишних 40 сек получается есле значение больше минуты,плиз,помогите....
Да придет time() и date() вам в помощь! Пошерудите поиск по мануалам. Так как год нам наф не нужен, лишних проблем не будет. ___ OFFTP: Педставляю, как вы там уже час думаете - вся комнатушка в дыму, на столе гора окурков, а на монике - только <? ?> =)
2 Mixon: PHP: <? $start = microtime(true); While($a<100000000){ $a++; } $end = microtime(true); echo "Time start:" . date('H:i:s',$start)."\n"; echo "Time end:". date('H:i:s',$end)."\n"; $b = round(($end - $start),0); echo "Execute time: ".$b. " seconds"; ?>
Тыбы билять заткнул вонялку то,а. ТЫ головой подумай,что тиме,что дате,ничего не помогает.Как ебе объяснить то...я сам очень долго догонял объяснения автора....в асику.
Оно то похоже,ну для кого я спецыально подчеркнул что мне нужны не только сикунды загрузки страницы,но и минуты и даже часы! например чтобы было в ответе "Прошел 1 час 15 минут и 30 секунд" ну как вы там не внимательно читаете??? ну как??? ппц,етого я понять никак не могу,ну подчеркнул же,а все по вытаскуют чтото похожее с мануалов,и даже не задумуются что пихаюит а что нужно....
Mixon, ты полегче на поворотах, тебе вообще то люди помочь пытаються. Он на тебя свое время потратил а ты ругаешься. Нехорошо.
Я не ругаюсь,да и к тому же ето он 99% выташил из мануала просто...он даже непонял то что мне нужо и в чем проблема...из мануала любой может скопировать...
Mixon PHP: function getDuration($s, $l=0){ if($s>86400){ // Day $tot = $s / 86400; $r = $s % 86400; if(floor($tot)>1){$p='s';}else{$p='';} $t = floor($tot).' Day'.$p; }else if($s>3600){ // Hour $tot = $s / 3600; $r = $s % 3600; if(floor($tot)>1){$p='s';}else{$p='';} $t = floor($tot).' Hour'.$p; }else if($s>60){ // Minute $tot = $s / 60; $r = $s % 60; if(floor($tot)>1){$p='s';}else{$p='';} $t = floor($tot).' Minute'.$p; }else{ // Second if($s>1){$p='s';}else{$p='';} $t = $s.' Second'.$p; } if($r > 0){$t .= getDuration($r,$l+1);} if($l>0){ return ', '.$t; } return $t; }
Ппц,чтот я начинаю тупеть,уже мин 5 сижу палю в монитор,непойму как ето юзать,ноч уже,мозг off,мож кто подскажет?((
народ нужна помощь. хочу сделать вот что : чтоб при заходе на сайт каждый раз было в отчётах следующее (ник)(айпи)(время входа) PHP: <?php $sql="update userx where user_id='$userid'"; mysql_query($sql); if($result){ print "Вход в игру : $user с айпи $ip "; if(empty($ip)){ if (getenv('HTTP_X_FORWARDED_FOR')) { $ip=getenv('HTTP_X_FORWARDED_FOR'); } else { $ip=getenv('REMOTE_ADDR'); } } history($user,$ip,$time);?> помогите если не трудно ( заранее спасибо
2 Mixon Тест (могут быть некоторые неточности с округлениями и если время больше суток - не стал заморачиваться, сам поймешь, что делать): PHP: <?php $c=18224; // Введите кол-во секунд echo "$c\n"; if ($c<60) echo "0 hours 0 minutes " .round($c,0) . " seconds\n"; if ($c>=3600){ $c = $c/3600; $h = explode('.',$c); $minutes1 = substr($h[1],0,2); $sec1 = substr($h[1],2,2); if (substr($minutes1,0,1)>5) {$minutes=substr($minutes1,0,2)*6;$minutes = round($minutes,0);} else {$minutes=substr($minutes1,0,2)*0.6;$minutes = round($minutes,0);} if (substr($sec1,0,1)/10>5) {$sec=substr($sec1,0,2)*6;$sec = round($sec,0);} else {$sec=substr($sec1,0,2)*0.6;$sec = round($sec,0);} echo $h[0]." hours ". $minutes." minutes " .$sec . " seconds\n"; } if ($c>=60 && $c<3600) { $c = $c/60; $a = explode('.',$c); if (substr($a[1],0,1)>5) {$sec=substr($a[1],0,2)*6;$sec = round($sec,0);} else {$sec=substr($a[1],0,2)*0.6;$sec = round($sec,0);} echo "0 hours ". $a[0]." minutes " .$sec . " seconds\n"; } ?> Ну и рабочий код для измерения времени работы скрипта в нужном тебе формате: PHP: <?php $start = microtime(true); /* тут мы делаем что-то, чтобы прошло какое-то время */ While($a<100000000){ $a++; } /* Кончили делать что-то */ $end = microtime(true); echo "Time start:" . date('H:i:s',$start)."\n"; echo "Time end:". date('H:i:s',$end)."\n"; $c = round(($end - $start),0); if ($c<60) echo "0 hours 0 minutes " .round($c,0) . " seconds\n"; if ($c>=3600){ $c = $c/3600; $h = explode('.',$c); $minutes1 = substr($h[1],0,2); $sec1 = substr($h[1],2,2); if (substr($minutes1,0,1)>5) {$minutes=substr($minutes1,0,2)*6;$minutes = round($minutes,0);} else {$minutes=substr($minutes1,0,2)*0.6;$minutes = round($minutes,0);} if (substr($sec1,0,1)/10>5) {$sec=substr($sec1,0,2)*6;$sec = round($sec,0);} else {$sec=substr($sec1,0,2)*0.6;$sec = round($sec,0);} echo $h[0]." hours ". $minutes." minutes " .$sec . " seconds\n"; } if ($c>=60 && $c<3600) { $c = $c/60; $a = explode('.',$c); if (substr($a[1],0,1)>5) {$sec=substr($a[1],0,2)*6;$sec = round($sec,0);} else {$sec=substr($a[1],0,2)*0.6;$sec = round($sec,0);} echo "0 hours ". $a[0]." minutes " .$sec . " seconds\n"; } ?> Задачка на самом деле оказалась не такой уж и простой
А вы прикольные, стока кода пишете) PHP: <? function getmicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $start = getmicrotime(); While($a<100000000){ $a++; } $end = getmicrotime(); echo "Time start: " . date('H:i:s',$start)."\n"; echo "Time end: ". date('H:i:s',$end)."\n"; $b = round(($end - $start),0); echo "Execute time: ".gmdate('H:i:s',$b); ?> Результат:
PHP: <? for ($i=1;$i<30;$i++) echo "<IMG src='../images/presents/".$i.".png' border=0><INPUT type=radio value=".$i." name=img>"; ?> народ подскажите как вывести и цену подарка. в верхнем коде в онлайн игре выводит подарки в магазине подарков от 1 до 30. как сделать чтоб и цену выводило тоже.но цены 30-60-90-120.
Можно так PHP: <?php $j = 0; for ($i=1;$i<30;$i++) { echo "<IMG src='../images/presents/".$i.".png' border=0><INPUT type=radio value=".$i." name=img><br>"; $j +=30; echo 'Цена'.$j.'<br>'; } ?>