Хоббит 35 Опубликовано: 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 289 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 Этого может быть недостаточно. Посмотрите что будет происходить при удалении аватара, названии файла в базе не является реальным названием файла на диске.... Цитата Ссылка на сообщение Поделиться на других сайтах
Хоббит 35 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 Автор 21 минуту назад, MSK сказал: Этого может быть недостаточно. Посмотрите что будет происходить при удалении аватара, названии файла в базе не является реальным названием файла на диске.... А что может произойти? Все норм, удалил аватар, заново загрузил новый аватар, никаких проблем. DLE 14. Цитата Ссылка на сообщение Поделиться на других сайтах
MSK 289 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 (изменено) 14 минут назад, Хоббит сказал: А что может произойти? посмотрите код и все станет понятно @unlink( ROOT_DIR . "/uploads/fotos/" . totranslit($row['foto']) ); внося любые правки в код, анализируйте последствия изучая логику работы изначального функционала.... Изменено 13 мая 2023 пользователем MSK Цитата Ссылка на сообщение Поделиться на других сайтах
Хоббит 35 Опубликовано: 13 мая 2023 Рассказать Опубликовано: 13 мая 2023 (изменено) Автор 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 мая 2023 пользователем Хоббит Цитата Ссылка на сообщение Поделиться на других сайтах
crafic 32 Опубликовано: 15 сентября 2023 Рассказать Опубликовано: 15 сентября 2023 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}'" ); Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.