Силачи по PHP есть? нашел багу в php скриптах ISSABEL 5 (Компьютеры)

написал NоlZz©, Москва, 2025-05-15, 10:19 (470 дней назад)

форум их ссылку не присылает на активацию аккаунта
посему прошу помощи в исправлении кода

вот такая ругань на ошибки в php

не работает пара фич в вебморде

[Thu May 15 10:17:09.399397 2025] [proxy_fcgi:error] [pid 7391:tid 139986112300800] [client 192.168.10.20:62174] AH01071: Got error 'PHP message: PHP Notice: Only variables should be passed by reference in /var/www/html/modules/backup_restore/libs/paloSantoFTPBackup.class.php on line 219', referer: https://192.168.20.250/index.php?menu=backup_restore
[Thu May 15 10:17:39.686449 2025] [proxy_fcgi:error] [pid 7391:tid 139986286876416] [client 192.168.10.20:62206] AH01071: Got error 'PHP message: PHP Warning: ftp_put(/var/www/backup/i): failed to open stream: No such file or directory in /var/www/html/modules/backup_restore/libs/paloSantoFTPBackup.class.php on line 153', referer: https://192.168.20.250/index.php?menu=backup_restore

2 ошибки в файле

файл могу выложить куда-то

СПАСИбО!

Скажи лучше, какого года выпуска этот твой файл,

написал Remos, 2025-05-15, 11:47 (470 дней назад) @ NоlZz©

чтобы можно было оценить масштаб твоего бедствия.

Файлы в /var/www/backup чистил?

Там синтаксическая ошибка была в index.php модуля - исправил

написал NоlZz©, Москва, 2025-05-15, 14:16 (469 дней назад) @ Remos

Поднималось с последнего билда - с ISO
Файлы модуля от февраля 2025
Не суть
кривой программер не обьявил массив
отследил откуда ноги растут

было $out = "";

function obtainList($fileString )
{
$token = strtok($fileString, "_" ) ;
$out = "";
$i = 0;
while ($token != false)
{
$out[$i] = $token;
$token = strtok(";" ) ;
$i++;
}
return $out;
}

исправил на $out = array();

function obtainList($fileString)
{
$token = strtok($fileString, "_" );
$out = array();
$i = 0;
while ($token != false)
{
$out[$i] = $token;
$token = strtok(";" ) ;
$i++;
}
return $out;
}

Ну это первой строчкой в гугле шло :)

написал Remos, 2025-05-15, 14:20 (469 дней назад) @ NоlZz©

https://forum.issabel.org/u/noppakoon

Не думаю, что ты не гуглил :)

не гуглил

написал NоlZz©, Москва, 2025-05-15, 17:27 (469 дней назад) @ Remos

Более чем странно

написал Remos, 2025-05-15, 17:33 (469 дней назад) @ NоlZz©
исправил Remos, в 2025-05-15, 17:42

Ты менял переменную в том месте, которое не имеет никакого отношения к строке с ворнингом/нотисом. Чудеса да и только.

По идее, твоё изменение никак не влияет на строку 219, на которую указал PHP.

Вызов функции идет из index.php

написал NоlZz©, Москва, 2025-05-15, 18:13 (469 дней назад) @ Remos

с передаче массива
а он не массив

Это вызов функции, которую ты исправил

написал Remos, 2025-05-15, 18:32 (469 дней назад) @ NоlZz©

А в 219-ой строке находится функция obtainFiles, на которую твоё изменение никак влиять не должно.

оно не мешает тк оно о другом - исправляется просто

написал NоlZz©, Москва, 2025-05-15, 19:41 (469 дней назад) @ Remos

$names[]=array_pop(explode("/",$ima));

заменить на

$parts = explode("/", $ima);
$names[] = array_pop($parts);


array_pop() - этой функции нужна переменная, результат выражения она не прожует

Да, я про нее

написал Remos, 2025-05-15, 20:12 (469 дней назад) @ NоlZz©

Можно было заменить "$names = "" ;" на "$names = array();". Но не суть.

Теперь понятно, ты решал другую проблему с другой функцией :)

там еще есть ошибки и ошибочки - порыл инет

написал NоlZz©, Москва, 2025-05-15, 20:26 (469 дней назад) @ Remos

на предмет как оно вызывается и тп
поправил

PHP вобщем не так уж и сложен
те же классы и тп - похоже на С# итп
я давно в этом не ковырялся
поковырял немного
разобрался поверхностно
мне этого достаточно

Теперь вот пытаюсь заставить работать PBX/Operator Panel/FOP2

написал NоlZz©, Москва, 2025-05-15, 17:31 (469 дней назад) @ Remos

Issabel Panel с гитхаба прикрутил - работает

выключи нотисы и не парься.

написал zerocoolka ⌂, 2025-05-15, 13:19 (469 дней назад) @ NоlZz©

не надо тебе это.

когда будут ошибки и перестанет работать - тогда приходи.

--
Морская свинка на выпасе

У него и не работает

написал Remos, 2025-05-15, 13:24 (469 дней назад) @ zerocoolka

Вариантов 3:
1. Чистить /var/www/backup
2. Создавать там файл "i"
3. Отключать аuto-backup

cd /var/www/db
sqlite3 FTP.db
sqlite> INSERT INTO automatic_backup(id,status) VALUES("1","DISABLED" ),("2","DISABLED" );

это я сделал когда настройки резкопирования не менялись

написал NоlZz©, Москва, 2025-05-15, 14:19 (469 дней назад) @ Remos

i не файл. а папка скорей всего. А имя файла должно было быть получено,

написал zerocoolka ⌂, 2025-05-15, 22:52 (469 дней назад) @ Remos

но не вышло. ( в предыдущем нотисе)

--
Морская свинка на выпасе

Если имя файла потерялось, то ftp_put

написал Remos, 2025-05-15, 23:26 (469 дней назад) @ zerocoolka
исправил Remos, в 2025-05-15, 23:31

обратится к файлу i, без вариантов :)

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

написал zerocoolka ⌂, 2025-05-16, 08:34 (469 дней назад) @ Remos

сами то видите какая херня на выходе, а потом "php программисты криворукие"

там синтаксис языка меняется от версии к версии - моргнул - а функции нет уже.

--
Морская свинка на выпасе

Не чтобы нотисов не было, а чтобы было куда записывать бэкап :)

написал Remos, 2025-05-16, 10:29 (469 дней назад) @ zerocoolka

Это не решает проблему криворуких программистов, но может избавить от необходимости ее решать :)

если хочется решать проблемы кода - надо читать весь код а не избранное как у

написал zerocoolka ⌂, 2025-05-17, 02:59 (468 дней назад) @ Remos

пушкина и тп

--
Морская свинка на выпасе

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

написал Remos, 2025-05-17, 08:48 (468 дней назад) @ zerocoolka

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

надо - я еще в их модуль резервного копирования

написал NоlZz©, Москва, 2025-05-15, 14:18 (469 дней назад) @ zerocoolka

затащил расписание нормальное + автокопию на ftp
ща допиливаю

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

написал artemvp, 2025-05-15, 22:41 (469 дней назад) @ zerocoolka

если человек задает такие вопросы то этот совет ему отлично подойдет

написал zerocoolka ⌂, 2025-05-15, 22:57 (469 дней назад) @ artemvp

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

А если он не заглянул в строчки -то его метод - выключить нотисы.

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

--
Морская свинка на выпасе

Если человек не знает php - почему бы не задать вопрос?

написал artemvp, 2025-05-15, 23:38 (469 дней назад) @ zerocoolka

Да и разобрался сам потом, вроде как.
А "логики" там может и не быть, если авторы кода лепят такие дурацкие ошибки, как было процитировано в этой теме. Точнее, она в целом может и есть, но код - как курица лапой. Надо допиливать до ума, но автору похер, он его выложил, а далее хоть трава не расти...
Так что совет все равно плохой, тут я не соглашусь. Любой нотис - это сигнал о том, что где-то что-то не так работает. Правильно вообще полностью падать, даже при нотисе.

Все решилось? Если нет, то выкладывай, посмотрим.

написал artemvp, 2025-05-15, 22:40 (469 дней назад) @ NоlZz©

Хотя толку от этого может быть немного, там дебажить все в целом надо. PHP-программеры, по большей части, очень криворкуие...