Забыли пароль?
Запросите новый здесь.

Автор темы: Biven
ID темы: 2293
Информация:
Тема содержит 24 сообщения, была просмотрена 25006 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Ошибки, баги
 Распечатать тему
Некоторые ошибки, связанные с изменениями в PHP
Biven
Вопрос к знатокам ПХП и Фьюжена, а также внесений изменений с приходом новой версии ПХП.
Пишет в журнале ошибок: Function eregi() is deprecated
Так на что мне изменить функцию eregi() и за что она отвечает?
Файл с ошибкой: administration/settings_links.php
Оригинал записи:
echo "<td class='".(eregi("settings_main.php", FUSION_SELF) ? "tbl1" : "tbl2")."' style='padding-left:10px;padding-right:10px;'><span
class='small'><a href='settings_main.php".$aidlink."'>".$locale['401']."</a></span></td>\n";
Изменил(а) Biven, 10.08.2014 12:29
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Polarfox
Это регулярные выражения, старый синтаксис устарел но еще используется.
Желательно переписать под perl-совместимые функции.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме

PolarLab - вход для подопытных
 
Web
Biven
Ув. PolarFox
Я вовсе не на минутку без сомнений по поводу Вашей квалификации. Попрошу Вас, для тех, кто в танке (т.е. для меня): По конкретней, что делать? Есть журнал ошибок, который сейчас викинул х...у тучу всяких ошибок. Те, которые описаны на форуме и в факе, поисправлял. Сайт заработал. Понапоставил модов (всего три, пока хватить, сайт-визитка-мини блог) - ЧПУ страниц, загрузчик и форум. Вроде все работает, но в журнале появились гребаные ошибки. Понимаю, что из-за свежей версии ПХП. Но вот незадача, я ПХП знаю весьма поверхностно, а уж нюансы изменений версий, так это надо быть программером, коим я не являюсь и возраст уже такой, что становиться и переучиваться поздновато, да и времени нет, семья блин.
Если есть желание помочь, просто скажите: этот рубильник отпилить, поставить модную кнопку и спец. чемодан готов, обаме п...ц. (шутка)ag
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Polarfox
Оффтопик А, в этом плане, я просто обычно упрощенно поясняю.


Суть нотисов - что в данной версии эти функции работают, но в следующей - не будут. (в след версии PHP а не PHP-Fusion)
Те - можно оставить как есть, но будет ругаться, либо поставить другой аддон/ переписать этот.

Вот такие варианты, сам не смотрел насколько они близкие (функции) потому больше ничего скажу по ним чтоб не врать.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме

PolarLab - вход для подопытных
x1 x1
 
Web
Pisatel
Загрузить источник  GeSHi: PHP
  1. echo "<td class='".(preg_match("/settings_main.php/i", FUSION_SELF) ? "tbl1" : "tbl2")."' style='padding-left:10px;padding-right:10px;'><span class='small'><a href='settings_main.php".$aidlink."'>".$locale['401']."</a></span></td>\n";
Добавлено за 0.029 секунд, используя GeSHi 1.0.8.10
x1 x1 x1 x1
 
Web
Biven
Обращение к Pisatel

Поменял, в ответ теперь пишет следующие:

Delimiter must not be alphanumeric or backslash
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Pisatel
Попробуй так
Загрузить источник  GeSHi: PHP
  1. echo "<td class='".(preg_match("/settings_main\.php/i", FUSION_SELF) ? "tbl1" : "tbl2")."' style='padding-left:10px;padding-right:10px;'><span class='small'><a href='settings_main.php".$aidlink."'>".$locale['401']."</a></span></td>\n";
Добавлено за 0.027 секунд, используя GeSHi 1.0.8.10


Объединено 09.08.2014 12:32:
Кстати, а че за версия фьюжика? У меня даже файла такого нет settings_links.php
Изменил(а) Pisatel, 09.08.2014 09:32
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
Biven
Сечас пишет тоже, самое:
Delimiter must not be alphanumeric or backslash

Версия двига последняя, но явно жизни моды не дают. Конкретно, скорее всего в основном жизни не дает Power Fusion Forum v.2.1.0 EXP F 7.0.05
С ним борюс пока, толку только нет. Я и так ПХП фигово знаю, а теперь еще и изменения, "плохие знания меняются на никакие" - это полная бедаbu

Объединено 10.08.2014 05:04:
Pisatel, спасибо большое. Сработал первый вариант, просто я был не внимателен. После штудирования функции preg_match нашел свою ошибку в написании. Вам зачет с занесением в личное дело!

P.S. Вопрос к модераторам. Всплываю еще ошибки, мне новую тему открывать по каждой или продолжать эту?
Изменил(а) Biven, 10.08.2014 05:05
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Pisatel
Я не администрация, но, думаю, лучше прямо здесь спрашивать, решим. Вторая версия ответа- верная, там я лишь экранировал точку \. в регулярном выражении, советую тоже это сделать. Насчет последней версии двига: как так может быть, что у меня нет этого файла?
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
Biven
Pisatel написал:
Насчет последней версии двига: как так может быть, что у меня нет этого файла?

Моды иногда впихивают дополнительные файлы, поэтому думаю что это один из модов поучаствовал.
По поводу других ошибок, буду в этой теме выкладывать по мере времени свободного (чето многовато в журнале, обнулил ошибки и как будут вылазить, сюда буду переписывать их), если что не так, думаю админы уточнят это.

Объединено 10.08.2014 05:55:
Специально сейчас по установочным файлам модов пробежался, данный файл ставит Power Fusion Forum v.2.1.0
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Polarfox
Biven, думаю можно оставить тут, только заголовок желательно переименовать в более общее, но не обязательно.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме

PolarLab - вход для подопытных
 
Web
SchreiBear
Pisatel, в preg_match точки экранировать не нужно

preg_match("/settings\_main.php/i", FUSION_SELF)

иногда хватает посмотреть на текст ошибки
Изменил(а) SchreiBear, 10.08.2014 09:04
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Biven
PolarFox написал:

Biven, думаю можно оставить тут, только заголовок желательно переименовать в более общее, но не обязательно.

А как лутше обозвать тему: "Некоторые ошибки, связанные с изменениями в PHP" или как? Предлогайте, я переправлю название, ну или админы могут сами название подправить!
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Pisatel
SchreiBear написал:

Pisatel, в preg_match точки экранировать не нужно

preg_match("/settings\_main.php/i", FUSION_SELF)

иногда хватает посмотреть на текст ошибки

Не нужно? Если не ошибаюсь, функция ищет совпадение по регулярному выражению, а в регулярном выражении экранировать некоторые символы- обязательно.
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
Polarfox
Оффтопик Pisatel, да и причем есть спец функция http://php.net/ma...-quote.php
Про матч не помню, но точка - точно спецсимвол, хотя и с ней без экрана будет работать.

Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме

PolarLab - вход для подопытных
x1
 
Web
SchreiBear
Pisatel, загляни в maincore.php первая строка там нет спецсимвола _ НО! его экранировать нужно
$string='settings_main.php'; зато точка там не экранируется


Загрузить источник  GeSHi: PHP (brief)
  1. if (preg_match("/maincore.php/i", $_SERVER['PHP_SELF'])) { die(); }
Добавлено за 0.007 секунд, используя GeSHi 1.0.8.10


тогда как то так
Загрузить источник  GeSHi: PHP (brief)
  1. $string='settings_main.php';
  2. preg_match("/".preg_quote($string)."/i", FUSION_SELF)
Добавлено за 0.006 секунд, используя GeSHi 1.0.8.10


или же так
Загрузить источник  GeSHi: PHP (brief)
  1.  
  2. preg_match("/".preg_quote("settings_main.php")."/i", FUSION_SELF)
Добавлено за 0.007 секунд, используя GeSHi 1.0.8.10

Изменил(а) SchreiBear, 10.08.2014 21:23
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Pisatel
SchreiBear, PHP Fusion - далеко не эталон кодинга. Итак, попробую набросать грамотный код, не так, как проще, а как ДОЛЖНО БЫТЬ. Итак, вот это будет правильно (имхо)
Загрузить источник  GeSHi: PHP
  1. preg_match("/settings\_links\.php/i", FUSION_SELF) ? "yes" : "no";
Добавлено за 0.034 секунд, используя GeSHi 1.0.8.10

Аргументы: функция ищет совпадения по регулярному выражению, все спецсимволы экранированы. Вот так тоже будет правильно
Загрузить источник  GeSHi: PHP
  1. preg_match("/".preg_quote(settings_links.php)."/i", FUSION_SELF) ? "yes" : "no";
Добавлено за 0.033 секунд, используя GeSHi 1.0.8.10

Но! Мы вызвали ну абсолютно лишнюю в данной ситуации функцию preg_quote(), следовательно, увеличили нагрузку и т.д. и т.п. Кстати, здесь нет сложных регулярных выражений, и можно бы даже было воспользоваться stristr() например, она менее ресурсоемка. Думаю, на этом можно закончить оффтоп :-)
Переполз на WP, но PF - это как первая любовь, которая не забывается...
x1 x1 x1
 
Web
Biven
Ошибка: Undefined index: reedit
Файл: public_html/administration/downloads.php
Исходный код:
76 if ($_POST['reedit'] == "1") {
77 $download_url = stripinput($_POST['file_url']);
78 $download_filesize = stripinput($_POST['file_sz']);
79 $uploaded = true;
80 } elseif ($_POST['reedit'] == "2") {
81 $download_url = stripinput($_POST['file_url']);
82 $download_filesize = stripinput($_POST['file_sz']);
83 unlink (BASEDIR.$download_url);
84 $result = dbquery("UPDATE ".DB_DOWNLOADS." SET download_url='".$_POST['download_url']."',
download_filesize='".$_POST['download_filesize']."' WHERE download_id='".$_POST['download_id']."'");
85 $uploaded = true;

Что относится к reedit не знаю, поэтому взял весь кусок из журнала ошибок.
Заранее благодарен знатакам ПХП.
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 
Vova
Biven написал:

Ошибка: Undefined index: reedit
Файл: public_html/administration/downloads.php
Исходный код:
76 if ($_POST['reedit'] == "1") {
77 $download_url = stripinput($_POST['file_url']);
78 $download_filesize = stripinput($_POST['file_sz']);
79 $uploaded = true;
80 } elseif ($_POST['reedit'] == "2") {
81 $download_url = stripinput($_POST['file_url']);
82 $download_filesize = stripinput($_POST['file_sz']);
83 unlink (BASEDIR.$download_url);
84 $result = dbquery("UPDATE ".DB_DOWNLOADS." SET download_url='".$_POST['download_url']."',
download_filesize='".$_POST['download_filesize']."' WHERE download_id='".$_POST['download_id']."'");
85 $uploaded = true;

Что относится к reedit не знаю, поэтому взял весь кусок из журнала ошибок.
Заранее благодарен знатакам ПХП.


Загрузить источник  GeSHi: PHP
  1. if (isset($_POST['reedit']) && $_POST['reedit'] == "1") {
  2. $download_url = stripinput($_POST['file_url']);
  3. $download_filesize = stripinput($_POST['file_sz']);
  4. $uploaded = true;
  5. } elseif (isset($_POST['reedit']) && $_POST['reedit'] == "2") {
  6. $download_url = stripinput($_POST['file_url']);
  7. $download_filesize = stripinput($_POST['file_sz']);
  8. unlink (BASEDIR.$download_url);
  9. $result = dbquery("UPDATE ".DB_DOWNLOADS." SET download_url='".$_POST['download_url']."', download_filesize='".$_POST['download_filesize']."' WHERE download_id='".$_POST['download_id']."'");
  10. $uploaded = true;
Добавлено за 0.040 секунд, используя GeSHi 1.0.8.10

x1 x1 x1 x1 x1
 
Web
Biven
Vova, респект и уважуха. Эти ошибки вроде бы исчезли (их было несколько одинаковых) и пока вроде бы не показывались.
Просто вставил часть(isset($_POST['reedit']) && ) и все остальное остается без изменения, правильно ли это?!?
Да и пояснить, чего мы делаем тоже не мешает, а в общем все пока гуд, ошибок становиться меньше в журнале, что не может не радовать.
Ростовская Федерация Кёкусинкай России - http://www.ifk-ro...
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,211)   Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)