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

killserver

Клиенты
  • Публикации

    10
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем killserver

  1. 2 часа назад, celsoft сказал:

    Таких файлов в дистрибутиве нет. В данном случае вы не внимательны. Это файлы от старых версий. В DLE 11.3 они уже не используются, и в дистрибутиве 11.3 отсутствуют. Потому антивирус и говорит что их нужно удалить.

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

     

    2 часа назад, celsoft сказал:

    Это роли никакой не играет. По сути идет проверка на то остановлено ли данное расширение, если оно установлено, доступны все функции.

    тогда не логичнее проверять на наличие установленного расширения самого mbstring?)

  2. заметил несколько ошибок в новой версии 11.3:

    function dle_strpos($str, $needle, $charset ) {

    идёт проверка "mb_strrpos" вместо "mb_strpos".

    Далее, антивирус ругается на файл "engine/classes/typograf.class.php", "engine/ajax/typograf.php" и "engine/classes/html5player/flashmediaelement.swf" хотя - они есть в дистрибутиве. Если найду ещё чего-то в таком духе - опубликую сюда-же ;-)

  3. В силу того, что отдел по СЕО-продвижению постоянно требовал вставить в файл robots.txt директивы Host и Sitemap на разнообразных сайтах -я решил пойти немного более простым путём и сделать универсальный генератор. Задумка была такова - добавить только требуемые директивы в уже существующий файл, находящийся в корне без боязни, что его захотят изменить в любой момент. Возможно - будет полезно кому-то ещё ;-)

     

    И так, инструкция по установке:

    создаём файл robots.php в корневой директории с содержанием:

    <?php
    $distr_charset = "utf-8";
    header("Content-type: text/html; charset=".$distr_charset);
    define('DATALIFEENGINE', true);
    define('ROOT_DIR', dirname (__FILE__));
    if(!file_exists(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."data". DIRECTORY_SEPARATOR ."config.php")) {
    	echo iconv("windows-1251", $distr_charset, "Не найден файл конфигурации!");
    	die();
    }
    if(!file_exists(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."engine.php")) {
    	echo iconv("windows-1251", $distr_charset, "Не найден файл /engine/engine.php");
    	die();
    }
    if(!file_exists(ROOT_DIR. DIRECTORY_SEPARATOR .".htaccess")) {
    	echo iconv("windows-1251", $distr_charset, "Не найден файл /.htaccess");
    	die();
    }
    if(file_exists(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."modules". DIRECTORY_SEPARATOR ."robots.php")) {
    	echo iconv("windows-1251", $distr_charset, "Модуль robots уже установлен");
    	die();
    }
    require_once(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."data". DIRECTORY_SEPARATOR ."config.php");
    $robots = '<?php
    if(!file_exists(ENGINE_DIR."/../robots.txt")) {
    	die();
    }
    header("Content-Type: text/plain; charset=".$config["charset"]);
    $file = file_get_contents($config["http_home_url"]."robots.txt");
    $add = array();
    if(stripos($file, "Host")===false) {
    	$site = $config["http_home_url"];
    	$site = str_Replace(array("https", "http", ":", "//"), "", $site);
    	$site = explode("/", $site);
    	$add[] = "Host: ".$site[0];
    }
    if(stripos($file, "Sitemap")===false) {
    	$add[] = "Sitemap: ".$config["http_home_url"]."sitemap.xml";
    }
    if(sizeof($add)>0) {
    	$file .= "\n\n".implode("\n", $add);
    }
    echo $file;
    die();';
    
    $if = @file_put_contents(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."modules". DIRECTORY_SEPARATOR ."robots.php", $robots);
    if(!$if) {
    	echo iconv("windows-1251", $config["charset"], "Невозможно записать модуль /engine/modules/robots.php");
    	die();
    }
    
    
    $read = file_get_contents(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."engine.php");
    if(strpos($read, 'include ENGINE_DIR . \'/modules/robots.php\';')===false) {
    	$str = strpos($read, 'switch ( $do ) {')+16;
    	$first = substr($read, 0, $str);
    	$end = substr($read, $str);
    	$if = @file_put_contents(ROOT_DIR. DIRECTORY_SEPARATOR ."engine". DIRECTORY_SEPARATOR ."engine.php", $first.'
    
    	case "robots" :
    		include ENGINE_DIR . \'/modules/robots.php\';
    	break;
    	'.$end);
    	if(!$if) {
    		echo iconv("windows-1251", $config["charset"], "Невозможно изменить /engine/engine.php");
    		die();
    	}
    }
    
    
    $file = file_get_contents(ROOT_DIR. DIRECTORY_SEPARATOR .".htaccess");
    if(strpos($file, 'RewriteRule ^robots.txt$ index.php?do=robots [L]')===false) {
    	$str = strpos($file, 'RewriteRule ^rules.html$ index.php?do=rules [L]');
    	$first = substr($file, 0, $str);
    	$end = substr($file, $str);
    	$if = @file_put_contents(ROOT_DIR. DIRECTORY_SEPARATOR .".htaccess", $first.'
    	RewriteRule ^robots.txt$ index.php?do=robots [L]
    	'.$end);
    	if(!$if) {
    		echo iconv("windows-1251", $config["charset"], "Невозможно изменить /.htaccess");
    		die();
    	}
    }
    
    echo iconv("windows-1251", $config["charset"], "Успешно установили robots");

    и открываем в браузере http://site.ru/robots.php где site.ru - адрес Вашего сайта.

    После установки данной модификации - у Вас будет возможность в автоматическом режиме производить добавление директив Host и Sitemap для Вашего сайта без боязни смены домена или что-то в этом духе. Если есть пожелания - готов выслушать. Надеюсь подобное разработчики добавят в будущих релизах :-)

  4. немного подниму тему в силу того, что может кому-то да пригодится:

    	function getip() {
    		if(isset($_SERVER)) {
    			if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    				$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    			} elseif(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP'])) {
    				$ip = $_SERVER['HTTP_CLIENT_IP'];
    			} elseif(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {
    				$ip = $_SERVER['REMOTE_ADDR'];
    			} else {
    				$ip = false;
    			}
    		} else {
    			if(getenv('HTTP_X_FORWARDED_FOR')) {
    				$ip = getenv('HTTP_X_FORWARDED_FOR');
    			} elseif(getenv('HTTP_CLIENT_IP')) {
    				$ip = getenv('HTTP_CLIENT_IP');
    			} elseif(getenv('REMOTE_ADDR')) {
    				$ip = getenv('REMOTE_ADDR');
    			} else {
    				$ip = false;
    			}
    		}
    		if(strpos($ip, ",")!==false) {
    			$ips = explode(",", $ip);
    			$ip = current($ips);
    			unset($ips);
    		}
    	return $ip;
    	}

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

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