Силачи по 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-программеры, по большей части, очень криворкуие...