Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не работает Капча


mrprometei

Recommended Posts

Есть проблема с капчей opencart 1.5.5.1.2.

Добрые люди подсказали что скорее всего проблема с каким то модулем или с кодировкой в каком то файле модуля.

Так как сайтом рулили несколько людей до меня то круг поиска увеличивается до всего сайта.

Отключал модули поочередно эффекта не принесло.

Пробовал найти файлы с BOM рекрусивно тоже эффекта не принесло.

 

пример проблемы

http://jigfish.ru/aksessuary/attraktanty/attraktant-marker-zapah-krovi.html

когда хочешь оставить отзыв.

 

еще пример

http://jigfish.ru/reviews

 

 

Нашел костыль на сайте 

 

$out = ob_get_contents();

$out = str_replace(array("\n", "\r", "\t", " "), "", $input);
ob_end_clean();

 

Попробовал с первым примером проблема пропадает со вторым нет.

Так как не люблю костыли хочу попробовать разобраться с проблемой в корне.

 

В связи с этим хотел узнать как можно найти файл с неправильной кодировкой применительно ко всему сайту?

Есть ли возможность или какие то инструменты для локализации проблемы еще?

 

Буду очень признателен за советы или наставления в этом направлении.

Надіслати
Поділитися на інших сайтах


поискать

 

bomdel

delbom

bom_del

del_bom

 

Кроме того возможны варианты

Когда есть пустая строка или пробел

Змінено користувачем chukcha
Надіслати
Поділитися на інших сайтах

поискать

 

bomdel

delbom

bom_del

del_bom

 

Кроме того возможны варианты

Когда есть пустая строка или пробел

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

Потом найти очень тяжело.

Надіслати
Поділитися на інших сайтах

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

Потом найти очень тяжело.

 

 

Да в этом то и парадокс. 

Так как не я один вел сайт и связи с предшественниками нет.

Под подозрение попадает любой файл.

Можно ли как то еще попробовать вычислить пакостника?

Ибо проверять каждый файл это смертиподобно =))) а очень не хочется городить костыль на костыле.

Надіслати
Поділитися на інших сайтах


поискать

 

bomdel

delbom

bom_del

del_bom

 

Кроме того возможны варианты

Когда есть пустая строка или пробел

Спасибо. За совет попробую этими прогнать может что-то найду. Только есть у меня большое подозрение что правились файлы предшественниками. =( 

А есть ли варианты поиска пустых строк или пробелов?

Надіслати
Поділитися на інших сайтах


вот простейший код

 

<?php
function searchFile($path, $pattern = '*', $flags = 0, $depth = 0) {
    //Ищем все файлы с расширением php и помещаем их в массив $matches
    $matches = array();
    $folders = array(rtrim($path, DIRECTORY_SEPARATOR));

    while($folder = array_shift($folders)) {
        $matches = array_merge($matches, glob($folder.DIRECTORY_SEPARATOR.$pattern, $flags));
        if($depth != 0) {
            $moreFolders = glob($folder.DIRECTORY_SEPARATOR.'*', GLOB_ONLYDIR);
            $depth   = ($depth < -1) ? -1: $depth + count($moreFolders) - 2;
            $folders = array_merge($folders, $moreFolders);
        }
    }
    return $matches;
}
 
$f = searchFile(dirname(__FILE__), "*.{php,tpl}", GLOB_BRACE, 10000);

echo 'run';
foreach ($f as $key => $val) {
    $f = fopen($val,'rb');
	$filesize = filesize($val);
	if($filesize==0){
		continue;
	}
	$t = fread($f, $filesize);

	$fi = substr($t, 0, 2);
	if ($fi != '<?') echo $val. '<br>';
    //проверяем есть ли в файле BOM
    if (preg_match('|\xEF\xBB\xBF|', $t) !== 0) {
        if (is_writable($val) === true) {
            $data = preg_replace('|\xEF\xBB\xBF|', "", $t);
            $file = fopen($val,'w+b');
            if (fwrite($file, $data) === FALSE) {
                echo "$file :: Не могу произвести изменение\n";
            }
            echo "$val :: Успешно отредактирован\n";
            fclose($file);
        }
        else{
            echo $val." :: Присутствует метка BOM, файл доступен только для чтения\n";
        }
    }
	$pos = strpos('$GLOBAL',$t);
    if ($pos !==false) {
            echo "<br>$val :: G L O B A L <br>\n";
    }
}
echo 'stop';
?>


Если найдет - выведет название файла

+ простейшая проверка на наличие $GLOBAL

Змінено користувачем chukcha
  • +1 1
Надіслати
Поділитися на інших сайтах

Да в этом то и парадокс. 

Так как не я один вел сайт и связи с предшественниками нет.

Под подозрение попадает любой файл.

Можно ли как то еще попробовать вычислить пакостника?

Ибо проверять каждый файл это смертиподобно =))) а очень не хочется городить костыль на костыле.

Попробуйте поиск в файлах на предмет

?>"пробел" или перевод каретки

Total commander ищет даже по регулярным выражениям и даже по FTP

Надіслати
Поділитися на інших сайтах

Спасибо большое за советы. И прошу прощения если вопросы сильно банальны =)

 

Подскажите еще пожалуйста когда в админке захожу в журнал ошибок вижу следующее

 

Fatal error: Allowed memory size of 201326592 bytes exhausted (tried to allocate 193664010 bytes) in ***/vqmod/vqcache/vq2-system_engine_controller.php on line 58

 

И не могу понять смысл ошибки ведь ресов хватает.тогда в чем проблема?

Надіслати
Поділитися на інших сайтах


Удалите лог ошибок /system/log/* и очистите журнал модификаторов если у вас opencart 2

Надіслати
Поділитися на інших сайтах

У меня opencart 1.5.5.1.2.

Может с сталкивались с такой проблемой?

Я написал

Удалите лог ошибок /system/log/*

 

 

А модификаторы для opencart 2

 

Значит в вашем случае

Удалите лог ошибок /system/log/*

Надіслати
Поділитися на інших сайтах

вот простейший код

 

<?php
function searchFile($path, $pattern = '*', $flags = 0, $depth = 0) {
    //Ищем все файлы с расширением php и помещаем их в массив $matches
    $matches = array();
    $folders = array(rtrim($path, DIRECTORY_SEPARATOR));

    while($folder = array_shift($folders)) {
        $matches = array_merge($matches, glob($folder.DIRECTORY_SEPARATOR.$pattern, $flags));
        if($depth != 0) {
            $moreFolders = glob($folder.DIRECTORY_SEPARATOR.'*', GLOB_ONLYDIR);
            $depth   = ($depth < -1) ? -1: $depth + count($moreFolders) - 2;
            $folders = array_merge($folders, $moreFolders);
        }
    }
    return $matches;
}
 
$f = searchFile(dirname(__FILE__), "*.{php,tpl}", GLOB_BRACE, 10000);

echo 'run';
foreach ($f as $key => $val) {
    $f = fopen($val,'rb');
	$filesize = filesize($val);
	if($filesize==0){
		continue;
	}
	$t = fread($f, $filesize);

	$fi = substr($t, 0, 2);
	if ($fi != '<?') echo $val. '<br>';
    //проверяем есть ли в файле BOM
    if (preg_match('|\xEF\xBB\xBF|', $t) !== 0) {
        if (is_writable($val) === true) {
            $data = preg_replace('|\xEF\xBB\xBF|', "", $t);
            $file = fopen($val,'w+b');
            if (fwrite($file, $data) === FALSE) {
                echo "$file :: Не могу произвести изменение\n";
            }
            echo "$val :: Успешно отредактирован\n";
            fclose($file);
        }
        else{
            echo $val." :: Присутствует метка BOM, файл доступен только для чтения\n";
        }
    }
	$pos = strpos('$GLOBAL',$t);
    if ($pos !==false) {
            echo "<br>$val :: G L O B A L <br>\n";
    }
}
echo 'stop';
?>


Если найдет - выведет название файла

+ простейшая проверка на наличие $GLOBAL

 

 

нашел очень большую кучу файлов.

но появились еще вопросы 

очень много файлов в дефолтовой теме

допустим

/catalog/view/theme/default/template/agootemplates/module/search.tpl

получается изначально там были пробелы?

Надіслати
Поділитися на інших сайтах


Я написал

 

А модификаторы для opencart 2

 

Значит в вашем случае

Удалите лог ошибок /system/log/*

 

Касаемо логов все помогло. Спасибо.

 

Касаемо поиска пробелов после ?> рекрусивно грепнул весь каталог и ужаснулся итогом.

очень много файлов в дефолтовой теме.

Можете подсказать Такое возможно?

Надіслати
Поділитися на інших сайтах


в шаблонах - не страшно!

 

 

Кстати, да...

 

еще возможен вариант, наличие пробелов и пустых строк после ?> в php файлах

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Парни подскажите пожалуйста!

Поправил все что показал код рекомендованный выше. ВСе файлы php, но проблема так и не пропала.

Есть ли еще какие то варианты поиска источника проблемы?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.