Хоббит 27 Опубликовано: 13 мая Рассказать Опубликовано: 13 мая Создать плагин, указать файл 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 271 Опубликовано: 13 мая Рассказать Опубликовано: 13 мая Этого может быть недостаточно. Посмотрите что будет происходить при удалении аватара, названии файла в базе не является реальным названием файла на диске.... Цитата Ссылка на сообщение Поделиться на других сайтах
Хоббит 27 Опубликовано: 13 мая Рассказать Опубликовано: 13 мая Автор 21 минуту назад, MSK сказал: Этого может быть недостаточно. Посмотрите что будет происходить при удалении аватара, названии файла в базе не является реальным названием файла на диске.... А что может произойти? Все норм, удалил аватар, заново загрузил новый аватар, никаких проблем. DLE 14. Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 271 Опубликовано: 13 мая Рассказать Опубликовано: 13 мая (изменено) 14 минут назад, Хоббит сказал: А что может произойти? посмотрите код и все станет понятно @unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($row['foto']) ); внося любые правки в код, анализируйте последствия изучая логику работы изначального функционала.... Изменено 13 мая пользователем MSK Цитата Ссылка на сообщение Поделиться на других сайтах
Хоббит 27 Опубликовано: 13 мая Рассказать Опубликовано: 13 мая (изменено) Автор 37 минут назад, 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 мая пользователем Хоббит Цитата Ссылка на сообщение Поделиться на других сайтах
crafic 25 Опубликовано: 15 сентября Рассказать Опубликовано: 15 сентября On 5/13/2023 at 9:29 AM, Хоббит said: И заменить на: $foto_name = uniqid().'_'.$foto_name; $db->query( "UPDATE " . USERPREFIX . "_users SET foto='{$foto_name}' WHERE user_id = '{$id}'" ); Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.