loading...

Авторизация ...

Имя пользователя :
Пароль :
я всё забыл!

ХакиУдаляем префикс к загружаемым на сервер файлам в DLE

Написал Hacker`, 7 марта 2010 | 37 комментариев | рейтинг новости не нравится   +8   нравится Версия для печати
Удаляем префикс к загружаемым на сервер файлам в DLE


При загрузке любого файла на сайт DLE добавляет префикс к файлу в формате unixtime (например 1266540926_yandex.jpg).
Данный хак позволяет не только убрать префикс перед именем файла, а так же будет проверять существует ли файл с таким же именем в этой же папке и в этом случае добавит к нему суффикс 1,2,3 и т.д.
Например: yandex.jpg, yandex1.jpg, yandex2.jpg
В блоге WordPress суффиксы к имени файла добавляются таким же образом.

Ставится данный хак очень просто, для этого потребуется отредактировать следующие файлы:
./engine/ajax/upload.php
./engine/inc/files.php

Открываем файл ./engine/ajax/upload.php,
Ищем код:
$file_prefix = time() + rand( 1, 100 );
$file_prefix .= "_";
и удаляем его!

Далее ищем:
$image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;
И заменяем на:
$image_name = totranslit( implode( ".", $img_name_arr ) );

$file_prefix = '';
$number = '';

while ( file_exists( $config_path_image_upload . $image_name . $number . '.' . $type ) ) {
    $number = $number+1;
}

$image_name =  $image_name . $number . '.' . $type;
В файле ./engine/inc/files.php проделываем все то же самое!
Данная строка в файле ./engine/inc/files.php встретится 2 раза, поэтому заменяйте её везде!

Следующие изменения проделываем только в файле ./engine/inc/files.php:
Ищем:
if( $serverfile == '' ) {
И перед этим кодом вставляем:
$img_name_arr = explode( ".", $image_name );
$type = end( $img_name_arr );
$curr_key = key( $img_name_arr );
unset( $img_name_arr[$curr_key] );
$image_name = implode( ".", $img_name_arr );
$file_prefix = '';
$number = '';
while ( file_exists( ROOT_DIR . "/uploads/files/" . $image_name . $number . '.' . $type ) ) {
    $number = $number+1;
}
$image_name =  $image_name . $number . '.' . $type;


UPD: Скачать готовые файлы для DLE 8.5: Вы не можете скачивать файлы с нашего сервера


Отблагодарили: Lavr, ridiska, KryT1k

Комментарии пользователей

  Экспорт комментариев в RSS
 Сортировать по рейтингу, по дате

Написал puggy, 7 марта 2010 в 09:44 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 9, Пользователи
Карма:
Давно бы в dle так сделали.

Написал Dodgerr, 7 марта 2010 в 10:06 плохой комментарий   +2   хороший комментарий
Новостей: 3, комментариев: 36, Пользователи
Карма:
Согласен =)

Написал Nickola, 7 марта 2010 в 11:53 плохой комментарий   +1   хороший комментарий
Новостей: 0, комментариев: 30, Пользователи
Карма:
может не по теме но если я впишу
$file_prefix = 'mysite.ru';
будет перфикс добавляться к картинкам да?

Написал CSKA, 7 марта 2010 в 13:35 плохой комментарий   -1   хороший комментарий
Новостей: 1, комментариев: 42, Пользователи
Карма:
Вообще не понятен смысл сия хака...

Написал Darksider, 7 марта 2010 в 16:05 плохой комментарий   +1   хороший комментарий
Новостей: 7, комментариев: 103, Пользователи
Карма:
Не вижу смысла хака... зачем? Все так часто сохраняют картинки?

если уж и сохраняют, то вот этот хак будет получше

http://4dle.ru/hacks/1147158175-prekfiks-k-izobrazhenijam.html

Так же это ответ на вопрос Nickola )

Написал Hacker`, 7 марта 2010 в 19:12 плохой комментарий   +1   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
Загрузите разные картинки под одним именем.
С вашим хаком старая заменится новой или не разрешит загружать файл под таким же именем.
Читайте хотябы внимательно для чего данный хак и научитесь отличать суффикс от префикса и не возникнет таких вопросов.
Данные хаки совместимы!
Мой хак добавляет суффикс к файлу, кому нужен префикс (например URL сайта) можете изменить эту строку:
$image_name = $image_name . $number . '.' . $type;
на
$image_name = $file_prefix . $image_name . $number . '.' . $type;


И имена у файлов будут следующие:
site.ru_yandex.jpg
Если файл site.ru_yandex.jpg уже был кем-то загружен
site.ru_yandex1.jpg
и т.д.

Так что перед тем как накидываться на меня и ставить минусы хорошенько подумайте про плюс данного мода и минус в сообщении выше.
Если кто против данного мода, прошу администрацию удалить его с сайта!
А вот и источник

Написал HKS_NOS, 7 марта 2010 в 21:31 плохой комментарий   0   хороший комментарий
Новостей: 1, комментариев: 1, Пользователи
Карма:
а если картинки с одинаковыми названиями загружать? заменяться будут?

Написал Hacker`, 7 марта 2010 в 21:45 плохой комментарий   +3   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
Если загружать картинки с одинаковыми названиями, то для них будет добавляться суффикс.
Еще раз повторяю:
Допустим кто-то уже загрузил файл image.gif
Вы загружаете файл с таким же именем, он автоматически переименовывается в image1.gif.
Таким же образом загружаются файлы в движке WordPress.

Написал Nickola, 8 марта 2010 в 07:59 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 30, Пользователи
Карма:
насчет перфикса не фига не получаеться если получаеться то методом тыка

fun-portal.tomsk.ru_fun-portal.tomsk.ru_breaknips-007.jpg

двойной копирайт хотя написал единожды в файле uplod.php

~ 131 строке

Написал Hacker`, 8 марта 2010 в 08:45 плохой комментарий   +2   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
Замену нужно производить во всех файлах, и в первую очередь в ./engine/inc/files.php
Вместо того, чтобы удалять
$file_prefix = time() + rand( 1, 100 );
$file_prefix .= "_";
Заменяем эти строки на:
$file_prefix = 'site.ru_';
Либо на такой вариант:
$file_prefix = parse_url($config['http_home_url'], PHP_URL_HOST);
- при последнем учитывайте префикс www (если не нужен, обрезайте его или наоборот добавляйте в случае отсутствия).

Далее после всех изменений находите строку:
$image_name = $image_name . $number . '.' . $type;
И заменяете на
$image_name = $file_prefix . $image_name . $number . '.' . $type;

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

Написал Karibi, 10 марта 2010 в 19:46 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 13, Пользователи
Карма:
Что то не получается с префексом вы сами то проверяли работоспособность либо напишите нормальную инфу

Написал Nickola, 8 марта 2010 в 14:16 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 30, Пользователи
Карма:
побаиваюсь я с 7.5 ставить на 8.5 файлы :)
запутался в хлам :( можешь мне сделать щас комп разобью. не внимателен. в долгу не останусь angry_2

Написал Hacker`, 8 марта 2010 в 19:42 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
Nickola,
Заливай эти файлы (свои) на любой файловый хост:
./engine/ajax/upload.php
./engine/inc/files.php


Например http://slil.ru
Кину ссылку на отредактированные.

Написал Mr.MYSTIC, 8 марта 2010 в 20:45 плохой комментарий   0   хороший комментарий
Новостей: 2, комментариев: 104, Пользователи
Карма:
вот и ремэйки появились)))

а чем вас не устраивает существующая система именования файлов???

Написал Hacker`, 8 марта 2010 в 23:36 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
Хм, еще разок:
Без хака: 1266540926_yandex.jpg
С хаком: yandex.jpg
В случае дубля добавит суффикс (yandex1.jpg, yandex2.jpg, ...).

С данным хаком + префикс:
prefix_yandex.jpg
prefix_yandex1.jpg
...

Вас устраивают стандартные имена? просто не ставьте хаки, можете закрыть данную страничку в браузере :)

Написал kiosaki, 10 марта 2010 в 00:11 плохой комментарий   +1   хороший комментарий
Новостей: 1, комментариев: 31, Пользователи
Карма:
Отличный хак. Спасибо автору. Хоть человечески названия картинок будет выглядить.
Я лично все картинки заливаю к себе на сайт...

Написал Lavr, 11 марта 2010 в 04:48 плохой комментарий   +1   хороший комментарий
Новостей: 0, комментариев: 18, Пользователи
Карма:
Поставил на 7.3. Пока работает wink
Надеюсь в дальнейшем лагов не будет.

Написал DenOr, 15 марта 2010 в 20:42 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 9, Пользователи
Карма:
на 8.0 работает. спасибо - давно хотел избавиться от этих префиксов. ay

Написал razorrazor, 17 марта 2010 в 11:37 плохой комментарий   -1   хороший комментарий
Новостей: 0, комментариев: 2, Пользователи
Карма: -1±

Vy voobshe testiruete, genii samouchki blin???
Voobshe na pervyj vzgliad vsio rabotaet, NO!!!! esli vy zagruzili karitnku prostoj zagruzkoj, a potom pod etim zhe imenem zgruzhaete kartinku cheres flash multizagruzchik, vypadaet oshibka i nechego dalee negruzit!!!!

Vot flash debugger vydajot takoj error:
Error #2044: Unhandled IOErrorEvent:. text=Error #2038: File I/O Error.

Tak chto hack nerabochij i nesovetuju nikomu ego stavit, poka neispraviat bug.

Написал Hacker`, 17 марта 2010 в 14:30 плохой комментарий   +1   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
Найдите сами в яндексе что у Вас за ошибка, если нет проблем с хостингом и браузером - выдается ошибка что файл существует и перезагрузка страницы.
Исправил баг: при мультизагрузке выдавалась ошибка, что файл уже существует, подробнее читайте тут, пока админы не отредактируют новость.

Я бы Вам посоветовал соблюдать уважительную форму общения, а для особо ленивых есть кнопочка "Транслит".

Написал razorrazor, 17 марта 2010 в 22:42 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 2, Пользователи
Карма: -1±
Ничего плохого неимел, просто удивлиают мениа лиуди которые выкладывают хацк недоработов его... Сам постоянно поправалиаю, чиутли не каздый новый хацк... а про бацкдоорсы и кодировку кода вообше молчиу... А минусы ставит не к чему, пото, вообше писат небуду про вашы баги, вот и с поломанными двигами сидет и будете...

Написал Hacker`, 18 марта 2010 в 15:00 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
razorrazor,
И правильно, вас никто не заставлял ставить данный хак.

Кто-нибудь понял о чем написал автор? какие еще кодировки (в блоге написал что он имел ввиду base64encode), кто-нибудь тут это видет?
Если такой умный, то поправляйте все хаки молча и не обсирайте их авторов.

UPD:
Вопрос снят, т.к. автор имел ввиду не мой хак.

Написал pavelbv, 19 марта 2010 в 00:34 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 12, Пользователи
Карма:
спасибо за инфу

кстати после установки хака прога по типу ADDNEWS, будут загружать картинки на сервер, но не смогут их добавлять в новость.
По крайней мере у меня так и получилось.

Написал Hacker`, 20 марта 2010 в 09:40 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
Странно, какой же тогда метод для вставки использует данная прога.
Я думаю что она должна запрашивать URL и вставлять его, тогда никаких проблем возникать не должно.
Может быть они парсит его по маске unixtime_name.jpg
Сегодня проверю.

Написал pavelbv, 20 марта 2010 в 23:29 плохой комментарий   +1   хороший комментарий
Новостей: 0, комментариев: 12, Пользователи
Карма:
Hacker`,
Сегодня проверил по всякому и вывод один для вставки из addnews требуется картинка такого типа _yandex.jpg до _ не обязательно чтобы что-то было но сам _ должен быть в начале

типа того
$image_name = '_' . $image_name .$number . '.' . $type;

но это нужно только всяким варезникам, остальных не касается.

Чтобы не париться я сделал так сайт.ru_yandex.jpeg при этом все сводиться к $file_prefix

А так хак полезный для тех кто в теме =)
Спасибо.

Написал Hacker`, 21 марта 2010 в 16:13 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
pavelbv, спасибо
Добавил замечание.

Написал 16112005, 22 марта 2010 в 14:24 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Все работает.
Кроме копирайта.

Написал Hacker`, 25 марта 2010 в 01:49 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
К сожалению админы не поправили новость, как ставить смотрите в блоге по ссылке выше.
Там все замечания учтены.

Написал roller, 4 мая 2010 в 19:23 плохой комментарий   0   хороший комментарий
Новостей: 2, комментариев: 286, Пользователи
Карма:
Помойму это все через чур.. я бы сделал все просто:

Цитата: Ищем:
$file_prefix = time() + rand( 1, 100 );
$file_prefix .= "_";

Цитата: Заменяем:
$file_prefix = "web-abc.ru_";
$file_prefix .= date('Y-m-d') . "_";

Где web-abc.ru - ваш домен.

И в итоге имеем картинки, типа: web-abc.ru_2010-05-05_kartinka.jpg

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

Написал roller, 5 мая 2010 в 09:10 плохой комментарий   0   хороший комментарий
Новостей: 2, комментариев: 286, Пользователи
Карма:
Кто хочет можно еще и проверку на наличие файла сделать:

В файле: /engine/ajax/upload.php
Цитата: Ищем
$image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;

Цитата: Заменяем
$image_name = totranslit( implode( ".", $img_name_arr ) );

$number = '';

while ( file_exists( $upload_path . $file_prefix . $image_name . $number . '.' . $type ) ) {
$number = $number+1;
}

$image_name = $image_name . $number . '.' . $type;


В файле: /engine/inc/files.php
Цитата: Ищем
$image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;

И заменяем на код который написан выше (Цитата: Заменяем), за одним исключением:
$upload_path заменяем на $config_path_image_upload

Комментария не хватило дописать. Тестировалось на DLE 8.3

Написал Lavr, 27 мая 2010 в 03:33 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 18, Пользователи
Карма:
На 8.3 тоже работает. 59

Написал Hacker`, 12 июля 2010 в 11:20 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 46, Пользователи
Карма:
Изменения от 12.07.2010:
http://whymax.ru/scripts/5-dle-prefix.html

Написал Vasiya, 16 октября 2010 в 00:57 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 3, Пользователи
Карма:
Дайте пожалуйста инструктаж под 7.2 sad

Написал chikabuz, 28 октября 2010 в 14:19 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 7, Пользователи
Карма: -1±
я себе еще заменил
define( 'FOLDER_PREFIX', date( "Y-m" )."/" ); на define( 'FOLDER_PREFIX', "" );
и теперь все файлы будут в одной папке

Написал webposter7, 27 ноября 2010 в 22:32 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 1, Пользователи
Карма:
Ребята подскажите как сделать на DLE 9 ?

Информация



Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
Анализ Тиц и PR сайта

[removed][removed] [removed] (adsbygoogle = window.adsbygoogle || []).push({}); [removed]