Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Хак Personal avatar (пользователь может закачивать аватар)

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4

Открыть новую тему     Написать ответ в эту тему

Aleks2002



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хак Personal avatar

 
Описание хака:
 

Цитата:
 
В register.cgi и profile.cgi появятся пункты:
- закачать аватар с вашего диска,  
- указать ссылку на аватар с другого сайта,
- выбрать аватар из списка аватаров форума.  
 
При установке хака можно установить максимальный размер закачиваемых аватаров в kb и px. По умолчанию в хаке прописаны размеры max=30 kb и 64x64 px.
 
В директории картинок ikonboard/avatars создаётся поддиректория personal.
И если юзер выберет персональный аватар (закачает с диска или укажет ссылку), то его аватар автоматически загрузится в папку avatars/personal и автоматически переименовывается в имяюзера.gif .  
В будущем, если он захочет сменить аватар, то старый аватар автоматически заменяется на новый.  
 

 
 
Хак можно скачать с сайта производителя или  
из местного файлового архива

Всего записей: 299 | Зарегистр. 12-03-2002 | Отправлено: 06:29 29-05-2002 | Исправлено: lynx, 04:59 28-12-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
branditc
 

Цитата:
вот сказали что надо что-то править в .htaccess  
 

 
Начнем с того, что покажи его содержимое, а потом уже "править".
 

Цитата:
 у меня не закачиваются аватары с жеского диска.(см. выше)  

 
"См. выше" конечно хорошо, но все-таки ты бы пояснил, что значит не закачиваются, что при этом происходит и что в логах. Если все то же самое, то почему ты не поправил, как я сказала? Если что-то изменилось, то что именно.
 

Цитата:
вот сказали что надо что-то править в .htaccess  
 
так что делать???  

 
Я сказала править .htaccess, наверное это означает, что надо править .htaccess, при чем я понятно сказала, как именно:
 

Цитата:
Неправильная директива CharsetSourceEnc или необходимый для нее модуль не включен в серверную конфигурацию.

 
Для начала, убери эту директиву.  
Ну, и разумеется, покажи содержимое файла.
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 10:46 12-02-2004
branditc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
уменя апач под винды на локалхосте.
этого файла вообще нет
 
 

Всего записей: 8 | Зарегистр. 06-02-2004 | Отправлено: 00:08 13-02-2004
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
branditc
 

Цитата:
уменя апач под винды на локалхосте.  
этого файла вообще нет  
 

 
Файла нет, а в чем тогда проблемы? Объясни все с начала, плиз.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 01:14 13-02-2004
branditc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поясняю заново
 
У меня стоит Апач (денвер-2) под 2000виндой, хочу погонять форум сначала в сети, оттестить глюки, баги, потом поставить на нормальный сервак.
 
поставил из файлового архива иконборд, - заработало все нормально
поставил хак персонал аватар - все нормально, только не загружается аватар с жесткого диска, все остальное работает. ставил слепо по инструкции для хака.
 
вот что у меня есть:  
Строка в 2-х файлах register и prifile стер:
$CGI::DISABLE_UPLOADS = 1;  
 
.htaccess нету вообще
если его  создать в директории со скриптами, то форум вообще не грузится.  
выдается окошко.  
 
<i>Internal Server Error  
The server encountered an internal error or misconfiguration and was unable to complete your request.  
Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.  
 
More information about this error may be available in the server error log.</i>  
 
в логах сказано:  
 
[Sat Feb 07 09:22:13 2004] [alert] [client 192.168.100.64] /home/192.168.100.64/  
cgi/ikonboard/.htaccess: Invalid command 'CharsetSourceEnc', perhaps mis-spelled  
 or defined by a module not included in the server configuration  
 
 
Вот что пишет сервер при попытке регистрации с аватарос с жесткого:
 
Software error:
Can't use an undefined value as a HASH reference at \home\192168~1.64\cgi\IKONBO~1\\register.cgi line 262.
 
For help, please send mail to the webmaster (webmaster@localhost), giving this error message and the time and date of the error.  
 
 
262 line register.cgi
 
unless (($personal =~ /\.gif$/) && ($query->uploadInfo($personal)->{'Content-Type'} eq "image/gif")) {
 
 
и что делать?
как поправить чтобы аватар запускался?

Всего записей: 8 | Зарегистр. 06-02-2004 | Отправлено: 16:10 13-02-2004
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
branditc А при изменении в профайле на новый аватар, что пишет?
 
Эта строка правильная и она должна выдавать ошибку. если такая есть. что загружается не gif формат, а другой...
Вот такой должен быть этот блок:

Код:
# Check if the file is in GIF format and have the right extention
 
        unless (($personal =~ /\.gif$/) && ($query->uploadInfo($personal)->{'Content-Type'} eq "image/gif")) {
            print header(); &error("Registering&The personal avatar you specified for upload must be in GIF format.");
        }

 

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 21:37 13-02-2004
branditc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Закачиваю гиф файл,
 а при изменение аватара в профиле говорит  
 
 

Цитата:
Content-type: text/html  
Software error:
Can't use an undefined value as a HASH reference at \home\192168~1.64\cgi\IKONBO~1\profile.cgi line 623.
 
For help, please send mail to the webmaster (webmaster@localhost), giving this error message and the time and date of the error.  

 
 
Добавлено
при изменение профала пишет то жоже самое
 
        unless (($newpersonal =~ /\.gif$/) && ($query->uploadInfo($newpersonal)->{'Content-Type'} eq "image/gif")) {
            &error("Modifying Profile&The personal avatar you specified for upload must be in GIF format.");
        }
 
а закачиваю я Гиф!

Всего записей: 8 | Зарегистр. 06-02-2004 | Отправлено: 00:42 14-02-2004
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
branditc  

Цитата:
profile.cgi line 623
Она точно такая же....Хорошо, а  Апачи( установки его) грузит  картинки в принципе?...Нет запрета на загрузку? Я так понимаю, что проверено, катринка меньше 30кб и папка с аватарами создана правильно и форум до того работал правильно с аватарами и все находил ?....

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 02:03 14-02-2004
branditc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверное проблема была в том, что я до этой установки ставил ещё несколько хаков, вот что-то где-то и не сросталось...
Переустановил все заново, поставил на чистый иконбоард 2.1.9 хак персонал аватар и все заработало
 
 
СПАСИБО всем за оказанное внимание!

Всего записей: 8 | Зарегистр. 06-02-2004 | Отправлено: 02:30 15-02-2004
Lexa_AV

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Can't use an undefined value as a HASH reference at \home\192168~1.64\cgi\IKONBO~1\profile.cgi line 623.  

 
Господа! Знаете в чем дело было? В хаке для profile.cgi пропущена одна важная деталь:  
 
$personal = $query -> param('personal');
 
То есть в "массиве" $query просто не было элемента "$personal". Вот вам и ругань отсюда.
 
Эту строчку надо добавить перед

Код:
 
$action              = $query -> param('action');
$inmember            = $query -> param('member');
$inmembername        = $query -> param("membername");
$inpassword          = $query -> param("password");
 

 
 
Просто я сегодня ставил этот хак на свою хаканую-перехаканую конфу и столкнулся с той же проблемой. Так что, branditc и lynx, не в хаках дело

Всего записей: 21 | Зарегистр. 23-07-2002 | Отправлено: 18:16 22-02-2004
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lexa_AV
 
Спасибо за замечание, но в той версии, что лежит у нас в архиве, этот баг устранен.  
http://forall.ru-board.com/ibarchive/personalavatar.zip
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 19:37 22-02-2004
Sebastyan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
После установке хака та же проблема, что и у Novator'а:

Цитата:
Can't use an undefined value as a HASH reference at profile.cgi line 655.

Убрал charset( 'windows-1251' );, ничего не изменилось.
Т.к. хаков установил много, возвращатся на старт не хочется.
Попробовал из кода:

Цитата:
       unless (($newpersonal =~ /\.gif$/) && ($query->uploadInfo($newpersonal)->{'Content-Type'} eq "image/gif")) {
           &error("$personal Modifying Profile&The personal avatar you specified for upload must be in GIF format.");
       }

убрать условие
Цитата:
&& ($query->uploadInfo($newpersonal)->{'Content-Type'} eq "image/gif")

(как я понимаю это проверка на соответствие типа файла: gif/не gif,
если юзер по каким-то причинам даст расширение .gif файлу, который gif'ом не является)
 
После этого вроде всё пашет.
 
Господа специалисты, скажите, насколько опасно отсутствие в коде этой проверки?
И опасно ли вообще?

Всего записей: 34 | Зарегистр. 06-11-2003 | Отправлено: 18:40 23-03-2004
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sebastyan

Цитата:
profile.cgi line 655.  

 
Дай эту строку + 10 строк выше и ниже.
 

Цитата:
Господа специалисты, скажите, насколько опасно отсутствие в коде этой проверки?  
И опасно ли вообще?

 
Да опасно. Можно зафлудить сервак.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 19:57 23-03-2004
Lexa_AV

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sebastyan, ты пробовал читать мое предыдущее сообщение в этом треде? Там все написано!
 
А именно, в начале profile.cgi - после

Код:
 
$action              = $query -> param('action');  
$inmember            = $query -> param('member');  
$inmembername        = $query -> param("membername");  
$inpassword          = $query -> param("password");  
 

 
Надо засунуть строчку

Код:
 
$personal = $query -> param('personal');  
 

 
А если уж это не поможет, тогда давай lynx-е  

Цитата:
эту строку + 10 строк выше и ниже.  


Всего записей: 21 | Зарегистр. 23-07-2002 | Отправлено: 07:45 24-03-2004
Sebastyan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
 
Код из profile.cgi:

Код:
 
if ($newpersonal) {
        ## Set maximum file length
        $max_length = 1024 * 30;
 
        ## Verify the the information
        if ($inuseravatar ne "personal_avatar") {
            &error("Modifying Profile&Since you have entered a personal avatar to upload, you must select the \'personal\' item from the avatars selection box. If you did not wish to upload one, please leave the upload avatar field blank.");
        }
 
        # Verify the file size now (avoid writting files for nothing)
        $bytestowrite = -s $newpersonal;
 
        if ($bytestowrite > $max_length) {
            &error("Modifying Profile&The size of the personal avatar you specified for upload is of " . sprintf("%.0f", $bytestowrite / 1024) . "kb! It must not be greater than " . sprintf("%.0f", $max_length / 1024) . "kb.");
        }
 
        # Stop 0 bytes files
        unless ($bytestowrite) {
            &error("Modifying Profile&The personal avatar you specified for upload does not contain any data, please verify the path and try again.");
        }
 
        # Check if the file is in GIF format and have the right extention
# Строка 655:
        unless (($newpersonal =~ /\.gif$/) && ($query->uploadInfo($newpersonal)->{'Content-Type'} eq "image/gif")) {
            &error("Modifying Profile&The personal avatar you specified for upload must be in GIF format.");
        }
 
        ## Set output file location
        $filetomake = $imagesdir . "avatars/personal/" . $memberfiletitle . ".gif";
 
        # Check if file already exists and delete
        if (-e $filetomake) {
            unlink $filetomake;
        }
 
        open (FILE,">$filetomake") or die "Could not open $filetomake for writing.";
            binmode FILE; # Use binary mode, needed on some OS (e.g. Windows NT)
 
            while ($bytesread = read($newpersonal, $buffer, 2048)) {
               $byteswritten += $bytesread; # Get length of processed bytes
 
               print FILE $buffer;
            }
            close $newpersonal;
        close (FILE);

 
Lexa_AV, да, пробовал.
Те же груши, только впрофиль. Не работает.
Кстати, переменной $personal в коде profile.cgi вообще нет.

Всего записей: 34 | Зарегистр. 06-11-2003 | Отправлено: 12:51 24-03-2004
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sebastyan

Цитата:
Use binary mode, needed on some OS (e.g. Windows NT)  
 Вот на это он ругается, что или файл не того формата или загружается не в бинарном режиме. Пока  не  пропишешь серверу загрузку в  .htacces  для картинок, он будет ругаться и дальше. Посмотри , что требует хостер к загрузке картинок....
А если на локале. настройки своего сервера...
А было бы хорошо . если б изменить вот это в строке
Цитата:
'Content-Type'
на уже формат для картинок MultipartForms раз и на всегда. как говорится. все равно кроме катринок в аватары ничего не загружают,... обычно.

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 13:35 24-03-2004 | Исправлено: trew, 14:08 24-03-2004
Lexa_AV

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
trew

Цитата:
Вот на это он ругается, что или файл не того формата или загружается не в бинарном режиме

Следует напомнить, что выдается ошибка вида

Цитата:
Can't use an undefined value as a HASH reference at profile.cgi line 655.  

то есть производится обращение к несуществующему элементу 'Content-Type' хэш-таблицы uploadInfo($newpersonal). Однако этот элемент должен быть по-любому, вне зависимости от того, в каком режиме файл закачивался.
 
Sebastyan, скажи-ка, есть ли у тебя в profile.cgi сей фрагмент:

Код:
 
$newpersonal = $query -> param('personal');
$newexternal = $query -> param('external');
$newexternal = &cleanarea("$newexternal");
 

 
(он в начале sub savemodify должен быть)
 
Если вдруг нету, то вставь и посмотри эффект.
 
 
Добавлено

Цитата:
Кстати, переменной $personal в коде profile.cgi вообще нет.

Да, ты прав, это я хак из глючного описания ставил Пришлось самому поизощряться
 
Но смысл тот же!

Всего записей: 21 | Зарегистр. 23-07-2002 | Отправлено: 16:38 24-03-2004
Sebastyan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lexa_AV

Цитата:
скажи-ка, есть ли у тебя в profile.cgi сей фрагмент

Изначально был, однако .

Всего записей: 34 | Зарегистр. 06-11-2003 | Отправлено: 09:59 25-03-2004
z83



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А можно как-нибудь сделать так чтобы персональный аватар был доступен с определённого статуса?

Всего записей: 89 | Зарегистр. 09-10-2002 | Отправлено: 18:49 21-04-2004
kisin

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а что касается не только GIF, а скажем чтобы в роле аватара был JPEG???

Всего записей: 613 | Зарегистр. 30-12-2003 | Отправлено: 10:20 01-11-2004
mjorion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Была такая проблема - во время загрузки гифа сервер что-то такое хитрое с ним делал, что вместо изображения был белый квадратик
Поставил .htaccess вот вот такого вида:

Код:
CharsetSourceEnc windows-1251
CharsetRecodeMultipartForms Off

Поставил пермишн на 755 на этот файл и всё заработало!!! НО!
Новозалитый аватар не кладется в папку personal, а лежит рядом со всеми остальными т доступен для остальных юзеров. Не гуд совсем
 
Кроме этого недоразумения возникает вопрос - ПОЧЕМУ ТОЛЬКО GIF МОЖНО ЗАЛИВАТЬ??? ( истерика;) )

Всего записей: 123 | Зарегистр. 07-07-2004 | Отправлено: 16:27 21-12-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Хак Personal avatar (пользователь может закачивать аватар)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru