Хоббит 36 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 Создать плагин, указать файл engine/modules/profile.php Найти: $db->query( "UPDATE " . USERPREFIX . "_users SET foto='{$foto_name}' WHERE user_id = '{$id}'" ); И заменить на: $db->query( "UPDATE " . USERPREFIX . "_users SET foto='{$foto_name}?UpdateTime=" . time() . "' WHERE user_id = '{$id}'" ); Не знаю, почему @celsoft не сделал подобного, учитывая, что большинство из нас пользуется кэшированием Cloudflare. Даже браузерное кэширование создает проблемы, если загрузить новый аватар. Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 290 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 Этого может быть недостаточно. Посмотрите что будет происходить при удалении аватара, названии файла в базе не является реальным названием файла на диске.... Цитата Ссылка на сообщение Поделиться на других сайтах
Хоббит 36 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 Автор 13.05.2023 в 06:34, MSK сказал: Этого может быть недостаточно. Посмотрите что будет происходить при удалении аватара, названии файла в базе не является реальным названием файла на диске.... Расширить А что может произойти? Все норм, удалил аватар, заново загрузил новый аватар, никаких проблем. DLE 14. Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 290 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 (изменено) 13.05.2023 в 06:58, Хоббит сказал: А что может произойти? Расширить посмотрите код и все станет понятно @unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($row['foto']) ); внося любые правки в код, анализируйте последствия изучая логику работы изначального функционала.... Изменено 13 мая 2023 пользователем MSK Цитата Ссылка на сообщение Поделиться на других сайтах
Хоббит 36 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 (изменено) Автор 13.05.2023 в 07:12, MSK сказал: посмотрите код и все станет понятно @unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($row['foto']) ); Расширить Я уже несколько раз пробовал удалить аватарки с разных аккаунтов, никаких проблем, файлы удаляются. Возможно, это из-за оператора @, который не показывает ошибки. По крайней мере, изменения работают. А остальное пусть @celsoft подскажет, если не трудно. Ну или на всякий случай: Найти: if( $_POST['del_foto'] == "yes" AND !$stop) { $url = @parse_url ( $row['foto'] ); $row['foto'] = basename($url['path']); @unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($row['foto']) ); $db->query( "UPDATE " . USERPREFIX . "_users set foto='' WHERE user_id = '{$id}'" ); } Заменить на: if( $_POST['del_foto'] == "yes" AND !$stop) { $url = @parse_url ( $row['foto'] ); $foto_path = basename($url['path']); $foto_path_parts = pathinfo($foto_path); $filename = $foto_path_parts['filename']; $extension = $foto_path_parts['extension']; @unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($filename) . "." . $extension ); $db->query( "UPDATE " . USERPREFIX . "_users set foto='' WHERE user_id = '{$id}'" ); } Изменено 13 мая 2023 пользователем Хоббит Цитата Ссылка на сообщение Поделиться на других сайтах
crafic 34 Опубликовано: 15 сентября 2023 Рассказать Опубликовано: 15 сентября 2023 13.05.2023 в 06:29, Хоббит сказал: И заменить на: Расширить $foto_name = uniqid().'_'.$foto_name; $db->query( "UPDATE " . USERPREFIX . "_users SET foto='{$foto_name}' WHERE user_id = '{$id}'" ); Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.