Помощник
|
Ошибка после обновления php |
Baphomets
|
Сообщение
#1
|
||
|
|
||
|
|||
x64 |
4.2.2020, 10:07;
Ответить: x64
Сообщение
#2
|
|
Странный код, с ненужными условиями и не выполняющимися кусками. Так и было изначально, или это результат работы запутывателя кода?
По сабжу. Начиная в пыха 7.2 функция count() кидает ворнинг если ей передать не массив или объект с реализованным интерфейсом Countable. В Вашем коде функция иногда применяется к строкам, что не есть правильно и желательно бы её заменить на strlen(), но не везде по коду: часть параметров таки массивы, а какие-то ветки могут перестать работать. Код echo count(''); // бросит warning и выведет 1, т. к. приводится к echo count((array) ''); Поэтому проще будет отключить вывод ошибок в браузер. Вот сайт Сайт выдаёт другую ошибку, в файле ./includes/compile/ipgeo.php который — дайте угадают — доже вытянут в одну строку и снабжён «магическими» конструкциями, вида if (1 == 1) и break; while (1 - 1) ;? (: |
|
|
Baphomets
|
Сообщение
#3
|
|
x64,
Точно, вот код <?php class IpGeo{var $cities_path='cities.txt';var $cidr_optim_path='cidr_optim.txt';private $cities=array();private $inetnums=array();private $count_inetnums=0;private $count_cities=0;var $charset='windows-1251';private function ip_to_number($ip){$m=array();if((4386+3378)>4386 || shell_exec($adress,$m,$inetnums));else{destroy($cities_path,$number);}$number=0;if((4568+2955)>4568 || strrev($cities_path));else{array_fill($min_index,$m,$current_index,$cidr_optim_path,$value);}if(!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$ip,$m))return null;for($k=1;$k<5;$k++){$m[$k]=(int)$m[$k];if($m[$k]>255||$m[$k]<0)return null;$number+=$m[$k]*pow(256,4-$k);}return $number;if(strpos('jiijjblpmuqgr','cz')!==false)apache_get_version($cities_path,$value,$count_inetnums,$cidr_optim_path);}public function set_charset_out($charset){$this->charset=$charset;}private function convert_charset($data){if($this->charset!="windows-1251"){if(is_array($data)){foreach($data as $key => $value){$data[$key]=iconv("windows-1251",$this->charset,$value);}}else{$data=iconv("windows-1251",$this->charset,$data);}}return $data;if(strpos('oltvovstllhxccs','fz')!==false)strtoupper($ip);}private function load_inetnums(){try{$tmp=file($this->cidr_optim_path);$this->inetnums=$tmp;if(!$this->inetnums)return false;$this->count_inetnums=count($this->inetnums);return true;}catch(Exception $e){die($e->getMessage());while(4046-4046)pack($cur_id,$result,$start);}}private function load_cities(){$this->cities=file($this->cities_path);if(!$this->cities)return false;$this->count_cities=count($this->cities);return true;if((4041+560)>4041 || flock($result,$this,$m,$start));else{file($charset,$count_inetnums,$key,$charset);}}public function find($ip){$result=array("range"=>null,"s"=>null,"c"=>null,"r"=>null,"d"=>null,"coord"=>null);$uicdnxsekouihldap='fn';$adress=$this->ip_to_number($ip);if(!$adress)return null;if(!$this->load_inetnums())die("Не могу загрузить файл " .$this->cidr_optim_path);$max_index=$this->count_inetnums;$min_index=0;if(8178<mt_rand(3452,4721))substr_count($current_index,$k);$is_finded=false;$current_index=0;$rmecewucqqcxbrqvm=1223;while($min_index<$max_index){$current_index=floor(($min_index+$max_index)/2);$jafamkomgqmwpu=3781;$tmp=explode("\t",$this->inetnums[$current_index]);$start=ceil($tmp[0]);(4016-4016+3541-3541)?acosh($max_index):mt_rand(1574,4016);$end=ceil($tmp[1]);if($adress<$start){$max_index=$current_index;continue;}if($adress>$end){$min_index=$current_index+1;continue;}if($adress<=$end && $adress >= $start){$is_finded=true;break;}}if($is_finded){$tmp=explode("\t",$this->inetnums[$current_index]);$id=$tmp[4];$result["range"]=$tmp[2];$result["s"]=$tmp[3];(1590-1590+1347-1347)?fdf_set_version($this,$max_index,$tmp):mt_rand(1549,1590);if($id!="-"){$id=ceil($id);if(!$this->load_cities())die("Не могу загрузить файл " .$this->cities_path);$max_index=$this->count_cities;$min_index=0;$nxbwpjkhaawasuijin=1799;$is_finded=false;$current_index=0;while($min_index<$max_index){$current_index=floor(($min_index+$max_index)/2);$tmp=explode("\t",$this->cities[$current_index]);(467-467+3910-3910)?socket_getpeername($current_index,$m,$count_inetnums):mt_rand(467,545);$cur_id=ceil($tmp[0]);if($id<$cur_id){$max_index=$current_index;continue;}if($id>$cur_id){$min_index=$current_index+1;continue;}if($id==$cur_id){$is_finded=true;break;}}if($is_finded){$tmp=explode("\t",$this->cities[$current_index]);$result['c']=$tmp[1];$result['r']=$tmp[2];$mcvogbbjquibfgc=2757;$result['d']=$tmp[3];$result['coord']=$tmp[4] .", " .rtrim($tmp[5]);while(1053-1053)curl_version($key,$k);$result=$this->convert_charset($result);}}return $result;while(3717-3717)session_is_registered($cidr_optim_path,$value);}return null;$rsawntnkgpwsl='rmb';}public function destroy(){unset($this);if(5058<mt_rand(2430,2623))imagecreatefromgd2($tmp);}} ?> Скрипт 2010 года, коды все написаны разработчиком. Может перейти пока на php 7.2? , я с 5.6 переходил. -------------------- |
|
|
x64 |
4.2.2020, 10:38;
Ответить: x64
Сообщение
#4
|
|
|
|
|
Baphomets
|
Сообщение
#5
|
|
x64, а вобще реально тут что-то исправить, чтобы ошибка исчезла, или для этого надо сильно напрячься? Как удалить конструкцию unset($this);? Последний фрагмент кода {unset($this);if(5058<mt_rand(2430,2623))imagecreatefromgd2($tmp);} ?
Сообщение отредактировал Baphomets - 4.2.2020, 12:22 -------------------- |
|
|
x64 |
4.2.2020, 14:19;
Ответить: x64
Сообщение
#6
|
|
|
Baphomets, всё реально, вопрос целесообразности.
На продакшене вывод ошибок в браузер должен быть отключен. Пых 7 отличается от 5-ой версии не только цифрой. В новой версии есть некоторые ломающие совместимость конструкции, есть код, приводящий к ошибкам и т. д. В общем, чтобы не заморачиваться, проще отключить вывод ошибок. Обычно хостеры его отключают, но мог включить разработчик сайта. Где? В php.ini, или .htaccess, или в скриптах наконец. Судя по коду, это не единственные проблемные места и править придётся более двух рассмотренных файлов. Как удалить конструкцию unset($this); Открыть файл в адекватном редакторе. Найти: unset($this); Удалить. Сохранить файл
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта | 0 | Alex-777 | 971 | 7.4.2024, 18:05 автор: Alex-777 |
|
Состояние после ампутации - нужна помощь благотворительный топик |
49 | vitvirtual | 5900 | 1.4.2024, 5:23 автор: vitvirtual |
|
Исчезающие фрилансеры после предоплаты. Зачем? Какой смысл? | 36 | metvekot | 9597 | 31.3.2024, 1:01 автор: Liudmila |
|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3429 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1246 | 24.11.2023, 14:46 автор: alexey |
Текстовая версия | Сейчас: 26.4.2024, 2:30 |