Перейти к публикации

Рекомендованные сообщения

не врубаюсь - почему флаги стран не выводятся????

на сайте разработчика сказано

Примечание:

Страну олпределяет только в том случае если модуль стоит на реальном хостинге и в пхп разерешено исходящее соединение!

так у меня реальный, настоящий хостинг, платный.... а всеравно не выходит....

и как проверить вот это:

и в пхп разерешено исходящее соединение
Ссылка на сообщение
Поделиться на других сайтах

всё думаю, копаюсь в код-е и не могу врубиться, вот в чём проблема состоит-почему флаги стран не отображаются!

Взгляньте знающие люди, может тут проблема кроется?

function get_country($ip)

		{

						$flag='';

						if (@$fp = fopen($lokalka."http://www.antispam.ru/cgi-bin/1/whois?query=$ip&targetnic=auto&lang=&btnGo=Whois+>>", "r"))

								{

										$str ='0';

										while ($data = fread($fp, 4096)) { $str .= $data; }

										while (substr_count($str, " "))  { $str = str_replace (" ","", $str);}

										if (substr_count($str, "country:"))

												{

												$stroka=explode("\n", $str);

												$n = 1;

												while ($n)

														{

														if (substr_count($stroka[$n], "country:"))

																{

																		$stroka[$n] = str_replace ("country:","", $stroka[$n]);

																		$flag = $stroka[$n];

																		$n = 0;

																} else $n++;

														}

												}

								}

							return $flag;

		}

попрошу меня извинить тех, кто понимает в пхп, просто я ни фига не понимаю, но пытаюсь путем логики врубиться в то, как данный модуль определает страну пользователя....

и так, возьмём на примере мой ай-пи 213.219.90.130

как допёрла моя голова, то данный модуль должен автоматически вставлять мой айпи вместо переменной (или как его на языке программеров называют) $ip в ссылку http://www.antispam.ru/cgi-bin/1/whois?query=$ip&targetnic=auto&lang=&btnGo=Whois которая указана в отрывке кода, который я привел!!!

Вбил, значит, я эту ссылку вместе с моим ай-пи вручную в адрессную строку браузера и мне открылась страница со следущими данными

c70be5f0a992.jpg

смотрел я на нее и думал: как она может быть связана с этим модюлем для определения стран, почесал голову с минуту :D и доперло то, что названия всех флагов в папке flags - состоят из двух букв и названия этих букв являются доменами стран чьи флаги находятся в папке...

и это дало толчок дальнейшему мышлению : что модуль берет за определение страны пользователя со странички, которую я привел - всего лишь две буквы, которые выделены у меня красным кружочком на следущем скриншоте

1d31436b643a.jpg

из этого, следуя логическому мышлению, модуль должен как бы грабить эти две последние буквы, после чего, на основе этого , в зависимости от того, какие две буквы были последние, должен показывать соответствующий .gif файл

на например ,если у меня на скриншоте мы видим, что сайт выдал последние две буквы, что я выделил красным, это ее, то значит название .gif файла должно в себе содержать также ее и в полном варианте выгладит данный гиф как ee.gif

если моё решение верно, то выходит, что проблема в том, что скрипт не может грабить эти две последние буквы, значит - надо научить его грабить их, а вот как сделать - не умею, не знаю....

скажите, я правильно мыслил - или же то, что я тут нарассуждал - полная лажа, если это так, то уж простите ламера - в пхп я ни шарю вообще, но вот логика есть и в школе матеша нравилась :)

Изменено пользователем Wow-man
Ссылка на сообщение
Поделиться на других сайтах

Люди Хелп а под 5.3 есть такая чтука я поставил себе простенький который только пишет сколько человек найти его можете на 4dle.ru

Ссылка на сообщение
Поделиться на других сайтах

В правильном напрвлении шол, но тот поисковик хуиз плохой!

В следующей версии по пытаюсь организовать все лучшим вдом, но это будет где то через месяц!

Кстати модуль будет писать под 5.3 версию ))

Скорее всего, будет внедрена технология аякс, для автообновление посетителей которые зависли на сайт!

Ссылка на сообщение
Поделиться на других сайтах

В правильном напрвлении шол, но тот поисковик хуиз плохой!

В следующей версии по пытаюсь организовать все лучшим вдом, но это будет где то через месяц!

Кстати модуль будет писать под 5.3 версию ))

Скорее всего, будет внедрена технология аякс, для автообновление посетителей которые зависли на сайт!

значит всё-таки не такой уж я и дурак :lol:

Ссылка на сообщение
Поделиться на других сайтах

ka4ek

не пашет на хосте она вот пример http://hahatun.com

точнее не показывает КТО сейчас на сайте

и что самое интересное в локалке все идет

Ссылка на сообщение
Поделиться на других сайтах

ka4ek, пасибо большое, все получилось!

021845d813986a893.jpg ............. 021845d8151b1652f.jpg

Плохо что флаги не выводит -(

Изменено пользователем Длон
Ссылка на сообщение
Поделиться на других сайтах

у меня после всех манипуляций котоыйр описал ka4еk вроде статистика заработал!

Вот только вышел другой глюк, теперь на сайт не возомжно зайти, т.е по гостем его просматривать можно, а если залогиниться, то выдает ошибку типа

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, support@avtlg.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Сделал откат ( удалил запрос, заменил файлы которые правил)

Ошибка не исчезла..как решить сие трабл?

Ссылка на сообщение
Поделиться на других сайтах

Ага у меня тоже появилась ошибка при заходе на сайт как пользователя:

Пользователи онлайн:

', this, event, '180px')" href="?subaction=userinfo&user=fww">fww htuoyolos Sergei

Ссылка на сообщение
Поделиться на других сайтах

зацините этот

файл online.php работает на версии 5,3 но как то не понятно

<?

  /*

=====================================================

Created by cernos... icq: 282928619

-----------------------------------------------------

email: cerno@ukr.net

site: www.zavedem.ru

-----------------------------------------------------

Copyright (c) cernos

=====================================================

Данный код защищен авторскими правами

=====================================================

Файл: online.php

-----------------------------------------------------

Назначение: Вывод пользователей онлайн

=====================================================

*/


  #Посетители онлайн

  //Где щас юзер, подставка слова

  $pref['lang_read']="<b>Главная страница</b><br> |<b>Читает новость</b><br> |<b>Просмотр раздела</b><br> ";

  /*Пример:

  Читает новость

  Модуль онлайн

  */


  #Настройки скрипта

  $pref['show_ip']=0; #Показывать IP адрес обычным посетителям, 1-да 0-нет

  $pref['show_user_read']=1; #Показывать где щас юзер обычным посетителям, 1-да 0-нет

  $pref['show_srobot']=1;#Показывать поисковых роботов на сайте, 1-да 0-нет

  $pref['show_lastuser']=0; #Показывать последних посетителей, 1-да 0-нет


  $pref['hour']=1;  #Сколько часов хранить инф. о пользователе

  $pref['show_lastuser_num']=20; #Сколько выводить последних посет

  $pref['show_lastuser_GMT']=3; #GMT укажите для своего города по умол. GMT +03

  $pref['column']=2;  #Кол-во колонок, при выводе списка пользователей

  /***********

  Пример при 2 колонках

  ************

  Masha  Petya

  Colya

  ***********/




  /*********************************

   Удаляем, обновляем данные

   *********************************/


function online_scr()

{

  global $db, $member_id, $config_http_home_url, $config_allow_alt_url, $pref, $zav_user_view, $config;

  #Данные пользователя

  $script = file_get_contents(ENGINE_DIR."/skins/default.js");



  #Узнаем юзер агента пользователя

  $useragent = $_SERVER['HTTP_USER_AGENT'];



	  $browser = 'Неизвестный';

	  // Выясняем браузер

	  if(strpos($useragent, "MSIE")	!== false)

	  if(strpos($useragent, "Opera")	== null)  $browser = 'Internet Explorer';

	  if(strpos($useragent, "Opera")   !== false) $browser = 'Opera';

	  if(strpos($useragent, "Netscape")!== false) $browser = 'Netscape';

	  if(strpos($useragent, "Firefox")!== false) $browser = 'Firefox';



	  $os = 'Неизвестная';

	  // Выясняем операционную систему

	  if(strpos($useragent, "Win")	  !== false)

	  {


			 if(strpos($useragent, "NT 6.0")  !== false) $os = 'Windows Vista';

			 if(strpos($useragent, "NT 5.2") !== false) $os = 'Windows Server 2003 или XPx64';

			 if(strpos($useragent, "NT 5.1")  !== false || strpos($useragent, "XP")) $os = 'Windows XP';

			 if(strpos($useragent, "NT 5.0") !== false) $os = 'Windows 2000';

			 if(strpos($useragent, "NT 4.0")   !== false || strpos($useragent, "3.5")   !== false) $os = 'Windows NT';

			 if(strpos($useragent, "Me")   !== false) $os = 'Windows Me';

			 if(strpos($useragent, "98")   !== false) $os = 'Windows 98';

			 if(strpos($useragent, "95")   !== false) $os = 'Windows 95';

	  }


	  if(strpos($useragent, "Linux")	!== false

	  || strpos($useragent, "Lynx")	 !== false

	  || strpos($useragent, "Unix")	 !== false) $os = 'Linux';

	  if(strpos($useragent, "Macintosh")!== false

	  || strpos($useragent, "PowerPC")) $os = 'Macintosh';




	  // Выясняем принадлежность к поисковым роботам

	  if(substr($useragent, 0, 12) == "StackRambler")	  $r_os = 'Rambler';

	  if(substr($useragent, 0, 9) == "Googlebot")		  $r_os = 'Google';

	  if(substr($useragent, 0, 6) == "Yandex")			 $r_os = 'Yandex';

	  if(substr($useragent, 0, 5) == "Aport")			  $r_os = 'Aport';

	  if(substr($useragent, 0, 6) == "msnbot")			 $r_os = 'MSN';

	  if(strpos($useragent, "picsearch")   !== false)	  $r_os = 'PicSearch';

	  if(strpos($useragent, "Googlebot")   !== false)	  $r_os = 'Google';

	  if(strpos($useragent, "Scooter")   !== false)		$r_os = 'AltaVista';

	  if(strpos($useragent, "KIT-Fireball")   !== false)   $r_os = 'Fireball';

	  if(strpos($useragent, "Googlebot-Image")   !== false)$r_os = 'Google-Image';





	  if($r_os!=false)

	  {

		 $browser="robot";

		 $os = $r_os;

	  }



		   //Определяем IP и подсеть

		   $ip = $ip_nf = $_SERVER['REMOTE_ADDR'];

		   $forward = @getenv(HTTP_X_FORWARDED_FOR);

		   if (isset($forward) && ($forward != $_SERVER['REMOTE_ADDR']) && $forward!="")  $ip = $ip."/".$forward;

		   if(!$ip) $ip = "Неизвестно";



   //Смотрим выполнил ли вход посититель

   if ($member_id)

   {

		$uid   = $member_id["user_id"];

		$uname = $member_id["name"];

   }

   else

   {

		$uid   = 0;

		$uname = 'guest';

   }




	#формируем строку столбца about

   $about = "$os|$browser|$zav_user_view";


   #Удаляем старые записи

   $db->query("DELETE FROM " . PREFIX . "_zavedem_lastseen where time<NOW() - INTERVAL ".$pref['hour']." HOUR;");


   #Смотрим есть ли пользователь уже с таким ip адресом в Базе

   $zav_query  =  "select count(*) from " . PREFIX . "_zavedem_lastseen where ip LIKE '".$ip_nf."%';";

   $result = $db->query($zav_query);

   $result = @mysql_result($result,0);


   if($result!=false)

   {

//	  $zav_query = "UPDATE " . PREFIX . "_zavedem_lastseen SET time=NOW(), uid=".$uid.", username='".$uname."', about='".$about."' where ip LIKE '".$ip_nf."%'";

		$zav_query = "UPDATE " . PREFIX . "_zavedem_lastseen SET time=NOW(), uid='".$uid."', username='".$uname."', about='".$about."' where ip LIKE '".$ip_nf."%'";



   }

   else

   {

//	  $zav_query = "INSERT INTO " . PREFIX . "_zavedem_lastseen values(".$uid.",'".$uname."',NOW(),'".$ip."', '".$about."');";

		$zav_query = "INSERT INTO " . PREFIX . "_zavedem_lastseen values('".$uid."','".$uname."',NOW(),'".$ip."', '".$about."');";

   }


   #Выполняем получившийся запрос

   $db->query($zav_query);


   #Выполняется 2 запрос(а)





  #---------------------------------#




   /*********************************

   Далее делаем вывод пользователей

   *********************************/


   #Создаем список пользователей которые были 5 мин. назад

   $zav_query = "select uid, username, about, ip from " . PREFIX . "_zavedem_lastseen where time>NOW() - INTERVAL 300 SECOND and username!='robot';";

   $result = $db->query($zav_query);


   #Считаем кого скока и выдаем список;)

   $online['users']=$online['guest']=0;

   while($user = @mysqli_fetch_array($result))

   {


	 if($user['uid']!=0)

	 {

	  $online['users']++;

	  $online['about'] = explode("|",$user['about']);

	  $pref['lang_read_epxp'] = explode("|",$pref['lang_read']);


	  //Подставка значений, читает, просмотр раздела и т.п.

	   $online['page'] = str_replace(":[0]:",$pref['lang_read_epxp'][0],$online['about'][2]);

	   $online['page'] = str_replace(":[1]:",$pref['lang_read_epxp'][1],$online['page']);

	   $online['page'] = str_replace(":[2]:",$pref['lang_read_epxp'][2],$online['page']);

	   $online['about'][2]=$online['page'];

	  //Разрешен ли просмотр обычным пользователям ip ареса

	  if($pref['show_ip']==0 && $member_id['user_group'] !=1)

	   {

		$user['ip'] ="Запрещено";

	   }


	   //Разрешен ли просмотр обычным пользователям ip ареса

	  if($pref['show_user_read']==0 && $member_id['user_group'] !=1)

	   {

		$online['about'][2] ="Запрещено";

	   }


	  //Есть ли аватор у пользователя

	  if(file_exists(ROOT_DIR."/uploads/fotos/foto_".$user['uid'].".jpg")) $avator = "<img src=".$config['http_home_url']."uploads/fotos/foto_".$user['uid'].".jpg>";

			if(file_exists(ROOT_DIR."/uploads/fotos/foto_".$user['uid'].".png")) $avator = "<img src=".$config['http_home_url']."uploads/fotos/foto_".$user['uid'].".png>";

				  if(file_exists(ROOT_DIR."/uploads/fotos/foto_".$user['uid'].".gif")) $avator = "<img src=".$config['http_home_url']."uploads/fotos/foto_".$user['uid'].".gif>";



		 $showhint = "onMouseover=\"showhint('<center>".$avator."</center><b>ОС:</b>  ".$online['about'][0]."<br><b>Броузер:</b>  ".$online['about'][1]."<br><b>IP:</b>  ".$user['ip']."<br><br><center>".$online['about'][2]."</center>', this, event, '180px')\"";


	   unset($avator);


	   if ($config_allow_alt_url == "yes")

		   $online['link'][] .= "<a title=' ' ".$showhint."  href=\"".$config_http_home_url."user/".urlencode($user['username'])."/\">".$user['username']."</a>";

	   else

		   $online['link'][] .= "<a title=' ' ".$showhint." href=\"$PHP_SELF?subaction=userinfo&amp;user=".urlencode($user['username'])."\">".$user['username']."</a>";

	 }

	 else $online['guest']++;

   }



/*

   //Если есть роботы то выводим и их

   if($pref['show_srobot']==true)

   {

	  #Составляем список роботов на сайте 30 минут назад:

	  $zav_query = "select username, about from " . PREFIX . "_zavedem_lastseen where time>NOW() - INTERVAL 1800 SECOND and about LIKE '%robot%';";

	  $result = $db->query($zav_query);


	  #Считаем кого скока и выдаем список;)

	  $showhint = "onMouseover=\"showhint('";


	  $robot=0;

	  $online['robot']="";

	  while($user = @mysqli_fetch_array($result))

	  {

			$robot=1;

			$online['about'] = explode("|",$user['about']);

			$showhint .="<b>Робот:  ".$online['about'][0]."</b>(".$online['about'][2].")<br>";


	  }

	  $showhint .= "', this, event, '180px')\"";

	  if($robot==true) $online['robot'] = "<a href='#' title=' ' ".$showhint." ><b>Поисковые роботы онлайн</b></a>  ";

   }


   #Последние посетители

   if($pref['show_lastuser']==true)

   {

	  #Составляем список последних посетителей на сайте:

	  $zav_query = "select username, about, time from " . PREFIX . "_zavedem_lastseen where time<NOW() - INTERVAL 300 SECOND and uid!=0 ORDER BY time Desc limit 0,".(int)$pref['show_lastuser_num'].";";

	  $result = $db->query($zav_query);


	  #Считаем кого скока и выдаем список;)

	  $showhint = "onMouseover=\"showhint('";


	  $online['lastusers']="";

	  while($user = @mysqli_fetch_array($result))

	  {

			//Вычисляем сколько по времени назад был юзер

			$now=strtotime('now');

			$past=strtotime($user['time'])+($pref['show_lastuser_GMT']*3600);

			$time=$now-$past;


			//Скока же времени назад был пользователь?

			if((int)date("H",$time)>0) $last_vis = date("Hчас(ов) iмин назад",$time);

			else $last_vis = (int)date("i",$time)."-мин назад";



			$online['about'] = explode("|",$user['about']);

			$showhint .="<b>".$user['username']."</b> - ".$last_vis."<br>";


	  }

	  $showhint .= "', this, event, '180px')\"";

	  $online['lastusers'] = "<a href='#' title=' ' ".$showhint." ><b>Последние посетители</b></a>";

   }

*/


if(!defined('DATALIFEENGINE'))

{

  die("Hacking attempt!");

}

$qw = <<<QQ

	SELECT COUNT(*) as c FROM dle_post

  UNION ALL

	SELECT COUNT(*) FROM dle_post

	  WHERE date > CURRENT_DATE

  UNION ALL

	SELECT COUNT(*) FROM dle_post

	  WHERE date > NOW() - INTERVAL 1 MONTH

  UNION ALL

	SELECT COUNT(*) FROM dle_users

	  WHERE reg_date > UNIX_TIMESTAMP(CURRENT_DATE)

  UNION ALL

	SELECT COUNT(*) FROM dle_users

	  WHERE reg_date > UNIX_TIMESTAMP(NOW() - INTERVAL 1 MONTH)

  UNION ALL

	SELECT COUNT(*) FROM dle_users

QQ;


$qw = str_replace('dle_', PREFIX . '_', $qw);

$row = $db->super_query($qw, true);

$stats_newusers = $row[3]['c'];

$stats_monthusers = $row[4]['c'];

$stats_users = $row[5]['c'];




;

	#---------------------------------#



	/*********************************

   Из полученных данных, составляем таблицу онлайна

   *********************************/



//Скрипты и класс для отображения окошек

$online['table'] .="

<script language=JavaScript>

".$script."

</script>


<style>

#hintbox {

						BORDER-RIGHT: 1px solid #3C3C3C;

						PADDING-RIGHT: 3px;

						BORDER-TOP: #3C3C3C 1px solid;

						PADDING-LEFT: 3px;

						Z-INDEX: 100;

						VISIBILITY: hidden;

						PADDING-BOTTOM: 3px;

						FONT: 11px Tahoma;

						BORDER-LEFT: 1px solid #3C3C3C;

						WIDTH: 152px;

						COLOR: #414141;

						PADDING-TOP: 3px;

						BORDER-BOTTOM: 1px solid #3C3C3C;

						POSITION: absolute;

						TOP: 0px;

						BACKGROUND-COLOR: #fff;

				}

</style>


";




   #Составляем Табличку Онлайна

   $online['table'] .= "<table class=copy cellpadding=0 cellspacing=0 border=0>

   <tr>

   <td coslpan=2><b>Сейчас на сайте:</b></td>

   </tr>

   <tr><td colspan=2 height=\"3px\"></td></tr>

   ";


   #Выводим кол-во юзеров и гостей

   $online['table'] .= "

   <tr><td><b>Пользователей:</b></td><td>".$online['users']."</td></tr>

   <tr><td><b>Гостей:</b></td><td>".$online['guest']."</td></tr>

   <tr><td colspan=2 height=\"10px\"></td></tr>

   <tr><td colspan=2><b>Пользователи онлайн:</b></td></tr>

   <tr><td><table><tr>

   ";


   #Выводим список пользователей

   for($i=0;$i<count($online['link']);$i++)

   {

	  #Выстраивываем в $pref['column'] колонок(ки)

	  if($column>=$pref['column'])

	  {

		 $column=0;

		 $online['table'] .= "</tr>

		 <tr>";

	  }


		 $column++;

		 $online['table'] .= "<td class=copy>".$online['link'][$i]."&nbsp;</td>";

   }


   $online['table'] .= "</tr></table></td></tr></table><br>

<br>".$online['lastusers']."<br>

   <!--START USERSTATISTIC -->

<table width='90%' cellpadding=0 cellspacing=0 class=copy>

		  <tr>

			   <td><b>Пользователей:</td>

		  </tr>

		  <tr>

			   <td>&nbsp;&nbsp;Новых: $stats_newusers</td>

		  </tr>

		  <tr>

			   <td>&nbsp;&nbsp;За месяц: $stats_monthusers</td>

		  </tr>

		  <tr>

			   <td>&nbsp;&nbsp;Всего: $stats_users</td>

		  </tr>

		</table>

<!--END USERSTATISTIC -->

<br>".$online['robot'];



   #Выполняется 3 запрос(а) при всех включенных опциях



   #число всех запросов 5

   return $online['table'];

}


$online = online_scr();



?>

Ссылка на сообщение
Поделиться на других сайтах

alukart2,

вечером опробую - посмотрим, работает ли отображение скинов

Ссылка на сообщение
Поделиться на других сайтах

Народ помогите, модуль Онлайн стал не всегдла записывать последних пользователей, в чем проблема, вроде ето стало как обновил двиг до версии 5,3 но не уверен, вот сайт http://www.funbary.net/

Ссылка на сообщение
Поделиться на других сайтах

зацините этот

файл online.php работает на версии 5,3 но как то не понятно

:( нахера попробывал - теперь такие проблемы вылезил, твою мать!!!! спасибо за "помощь"

пришлось полный откад модуля делать после замены данного кода, хотя до этого все работало, кроме отображения флагов

Изменено пользователем Wow-man
Ссылка на сообщение
Поделиться на других сайтах

Пользуюсь на 5.3 вот этим _http://www.zavedem.ru/2006/08/18/novaja_versija_bloka_posetiteli_onlajjn_ispravlenie.html ! Работает на 3=х разных сайтах без особых проблем и ошибок) Только качайте версию "Данный модуль не определяет страну и флаги:", ну всёравно флаги эти если и начинают показываются то показывают фигню)

Ссылка на сообщение
Поделиться на других сайтах

хм, а у меня модуль показывает то что на сайте присутствую только я,хотя в данный момент там находяться и другие люди.Есть решение этой проблемы?

Ссылка на сообщение
Поделиться на других сайтах

У меня почти всё заьаботало на 5.3, но что-то плохо определялась страна, так я убрал эту вишку оставл только то, что норм работает, мне хватает и запросов меньше делает.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...