- Автор темы
- #11
А не легче через .htaccess ограничить доступ по рефферу? Или нужна защита от загрузки картинок даже с рефером вашего сайта для незарегистрированных пользователей?
Собственно через .htaccess уже запретил для скачивания напрямую (не с сайта
Код:
Options -Indexes
RewriteCond %{HTTP_REFERER} !^http://(www.)?ПОДДОМЕН.ДОМЕН/ПАПКА_С_ГРАФ_РЕСУРСАМИ.*$ [NC]
RewriteRule .(jp?g|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip)$ - [F]
Но стоит задача для незарегистрированых юзеров подсовывать левую картинку. При этом картинка под каждую публикацию - разная (генерится с надписью. Подробно описывалось выше). И здесь уже кое какие наработки есть.
Через правило в .htaccess:
Код:
RewriteRule ^[0-9]*\.jpeg$ БЛА_БЛА_БЛА.jpgphp
AddHandler application/x-httpd-php .jpgphp
В итоге скрипт генерит картинку с надписью и отдает юзеру.
Код скрипта пока сырой:
Код:
<?php
function true_img ($jpeg_file) {
//функция открытия правильной картинки
// Создаем изображение из JPEG-файла
$img = imagecreatefromjpeg($jpeg_file)ж
return $img;
}
function false_img ($mynews_id ) { //$mynews_id - название новости, из которой запрашивают картинку
$img = false;
$strimg = "БЛАБЛАБЛА". $mynews_id . "БЛАБЛАБЛА";
$himg = 3*imagefontheight ('cambriab');
$vimg = 10 * strlen ($strimg);
$img = @imagecreate ($vimg, $himg)
or die ("Cannot Initialize new GD image stream ");
$background_color = imagecolorallocate ($img, 255, 255, 255);
$text_color = imagecolorallocate ($img, 0, 0, 0);
imagestring ($img, 5, 5, 2, $strimg, $text_color);
return $img;
}
//global ??????????????????????????
//проверяем юзера
if ЗАРЕГИСТРИРОВАН {
$im = true_img ("путь к правильной картинке");
}else{
$im = false_img ($ПЕРЕМЕННАЯ_С_ИМЕНЕМ_СТАТЬИ);
}
imagejpeg($im);
ImageDestroy($img);
?>
Не знаю как в него передать:
1.название просматриваемой статьи.
2.код групи юзера(зареган/не зареган).