форум vBSupport.ru > vBulletin > Вопрос — Ответ
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Xvwer
Простоузер
Default Обработка изображений
0

Пишу обработчик аттачей на форуме отдельным скриптом (почему не хаком? - хаком не получается…).
На форуме вложения – только изображения.
Аттач отдаю скрипту перехватом из .htaccess:
Code:
RewriteCond %{REQUEST_URI} ^/attachment\.php [NC]
RewriteCond %{QUERY_STRING} attachmentid=
RewriteCond %{QUERY_STRING} &d=
RewriteCond %{QUERY_STRING} !thumb=
RewriteRule ^(.*)$ /attashift.php [QSA,NC]
и потом в attashift.php его ковыряю.
Например, ставлю водяной знак:
PHP Code:
$path 'http://'.$_SERVER['SERVER_NAME'].preg_replace('/&d=([0-9]*)&?/','',$_SERVER['REQUEST_URI']);
$image = @imagecreatefromstring(file_get_contents($path));
if (
$image === false) {
die (
'Пожалуйста, сообщите об этой ошибке администратору форума.');
}
$w imagesx($image);
$h imagesy($image);
$watermark imagecreatefrompng('watermark.png');
$ww imagesx($watermark);
$wh imagesy($watermark);
imagecopy($image$watermark$w-$ww$h-$wh00$ww$wh);
header('Content-type: image/jpeg');
imagejpeg($image);
exit(); 
У меня вот такой вопрос:
если просмотр вложений запрещен гостям, - то скрипт не работает, ибо file_get_contents на запрос о содержимом вложения вместо изображения получает страницу с предложением залогиниться, даже если пользователь уже залогинен.
Можно ли каким-то образом сделать так, чтобы если пользователь залогинен, движок форума принимал скрипт «за своего»?

P.S.: Если этот способ обработки не полная туфта и получится разобраться с проверкой прав, – оформлю скрипт и выложу в качестве альтернативного решения для установки водяного знака + добавлю еще какие-нибудь обработки. Так что жду замечаний продвинутых кодеров.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
kerk
k0t
 
kerk's Avatar
Default
1

Quote:
Originally Posted by Xvwer View Post
чтобы если пользователь залогинен, движок форума принимал скрипт «за своего»?
в начале своего скрипта подключи глобал.пхп
таким образом мы инициализируем глобальные данные воблы, в том числе, и узера будет опознавать
=
Quote:
Originally Posted by Xvwer View Post
ибо file_get_contents на запрос о содержимом вложения вместо изображения получает страницу с предложением залогиниться
лучше проверять file_get_contents

====
на сколько помню, перед exit; (после того, как отдал картинку браузеру), нужно imagedestroy($img);

Quote:
Originally Posted by Xvwer View Post
header('Content-type: image/jpeg');
в хидер всегда отдает только жпег?
или есть варианты с гифками и пнг?
 
 
Xvwer
Простоузер
Default
0

Quote:
Originally Posted by kerk View Post
в начале своего скрипта подключи глобал.пхп
таким образом мы инициализируем глобальные данные воблы, в том числе, и узера будет опознавать
=
require_once('./global.php');
подключал, не помогло...
Quote:
Originally Posted by kerk View Post
лучше проверять file_get_contents
В смысле, на предмет изображение получили или нет?
Quote:
Originally Posted by kerk View Post
на сколько помню, перед exit; (после того, как отдал картинку браузеру), нужно imagedestroy($img);
хорошая штука, спасибо.
Quote:
Originally Posted by kerk View Post
в хидер всегда отдает только жпег?
или есть варианты с гифками и пнг?
в данном случае выбрал jpeg, т.к. исходные данные получаем через imagecreatefromstring а там уж все равно что из них лепить (по крайней мере из исходных гифов и пнг у мня jpeg получался). Но в будущем нужно по уму сделать - определять MIMЕ исходного изображения и далее через imagecreatefromТИП.
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 10:57 AM.


Powered by vBulletin® Version 3.0.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...