ExBB Community » Файловый ExBB » Общие вопросы » Отдача некоторых картинок через скрипт

Страниц (3): [1] 2 3 »
 

1. BON - 23 мая 2011 — 15:56 - перейти к сообщению
Народ, вобщем такая загвоздка. Вставляю у себя на форуме в некоторые места картинки таким образом
CODE:
<img src="http://im2.bsaa.info/respirator/14.jpg" border: black 0px solid" align=left hspace=5 />

помещать фотографии под хайд как то не айс, да и выглядит тогда это то же не айс. Можно ли сделать так чтобы фотографии отдавались через скрипт, например ex.php, и если пользователь не зарегистрирован то отдавать ему картинку что просмотр запрещен, и надо зарегаться.
Имеется ввиду чтобы ссылка выглядила типо так:
CODE:
http://im2.bsaa.info/respirator/ex.php?id=1
где id=1 это название фотографии. Вот только как состряпать такой скрипт или может готовый есть?
2. M-A-X - 23 мая 2011 — 16:46 - перейти к сообщению
Да, можно.
3. BON - 23 мая 2011 — 16:47 - перейти к сообщению
M-A-X пишет:
Да, можно.

если бы ещё кто смог состряпать скриптик такой.........эх Недовольство, огорчение
4. BON - 24 мая 2011 — 15:20 - перейти к сообщению
Народ, скажите как реализована проверка на авторизацию в этом движке ???
5. BON - 24 мая 2011 — 17:29 - перейти к сообщению
Ни кто не знает?Недовольство, огорчение
6. BON - 25 мая 2011 — 08:20 - перейти к сообщению
С выборкой картинок я разобрался. вотскрипт:
CODE:
<?
$imgname = $_GET["id"];
header("Content-type: image/jpeg");
readfile("http://im2.bsaa.info/respirator/".$imgname.".JPG")
?>


Народ как теперь прикрутить к этому скрипту чтобы работала провека через сессии - юзер залогинился, в перемсенной сессии намолявать что он авторизированый и дальше в этом скрипте елси зарегистрирован то выдать картинку, если нет, то выдать, например, картинку вы не зарегистрированы
7. igrok54 - 25 мая 2011 — 08:46 - перейти к сообщению
По моему, так должно работать:
CODE:
<?php
if($GLOBALS['fm']->user['id'] !== 0) {
$imgname = $_GET["id"];
header("Content-type: image/jpeg");
readfile("http://im2.bsaa.info/respirator/".$imgname.".JPG");
} else {echo 'Для просмотра картинок Вы должны авторизоваться.';}
?>

Но не проверял.
8. BON - 25 мая 2011 — 08:50 - перейти к сообщению
igrok54, ага мерсиУлыбка Такой вопрос: форум у меня висит на http://habar.bsaa.info/ , а скрипт лежит тут http://im2.bsaa.info/respirator/ex.php, но всё в пределах одного сервера. В фаиле ex.php не надо подключать фаилы ядра форума?
9. igrok54 - 25 мая 2011 — 08:54 - перейти к сообщению
Скрипт форума написан так, что его нельзя подключить для трансляции во внешний скрипт, внешний скрипт же подключить можно. Поэтому надо не
Цитата:
В фаиле ex.php не надо подключать фаилы ядра форума?
, а к форуму подключить файл ex.php.
10. BON - 25 мая 2011 — 08:56 - перейти к сообщению
igrok54 пишет:
к форуму подключить файл ex.php.

а каким макаром это сделеать?
скрипт я проверил, картинки отдаются, но если пользователь не зареган вс равно отдается
11. igrok54 - 25 мая 2011 — 09:02 - перейти к сообщению
Код файла (вероятно это файл темплейта) форума, где подключается ex.php приведи.
12. BON - 25 мая 2011 — 09:05 - перейти к сообщению
вот здесь http://habar.bsaa.info/topic.php...m=52&topic=1 только не сочти за идеотизм, мол можно было под хайд поместить, бла бла бла........Хайд в этот раз дляменя не катит
использую его в таком виде
CODE:
<img src="http://im2.bsaa.info/respirator/ex.php?id=1" border: black 0px solid" align=left hspace=5 />
13. igrok54 - 25 мая 2011 — 09:24 - перейти к сообщению
Пробуй так:
В файле topic.php найди строку:
CODE:
$topic_data .= '<tr><td colspan="2">'.$post.'</td></tr>';

замени на:
CODE:
$topic_data .= '<tr><td colspan="2">'.images_for_autorized_users($post).'</td></tr>';

в самый конец файла ( перед ?> ) добавь функцию:
CODE:
function images_for_autorized_users($p) {
if($GLOBALS['fm']->user['id'] === 0) {
$p=preg_replace("#<img[^>]*>#i", 'Для просмотра картинок Вы должны авторизоваться.', $p);
}
return $p;
}
14. BON - 25 мая 2011 — 09:26 - перейти к сообщению
igrok54 пишет:
$p=preg_replace("#<img[^>]*>#", 'Для просмотра картинок Вы должны авторизоваться.', $p);


в этой строке вместо надпись картинка может быть? и чтобы была в том же месте что и оригинал?
(Добавление)
попробовал, не работает. И скорее эта фишка и будет работать, но только для прикрепеленных мзображений а не для вставленных через html .

И эту фишку что хотел мне надо только для одно разделафорума, жля остальных должно быть как есть
15. igrok54 - 25 мая 2011 — 09:31 - перейти к сообщению
Вообще для любых картинок в посте должна работать. Функция регулярным выражением отпарсивает любые картинки в посте и если юзер не авторизован - подменяет их на сообщение о необходимости авторизоваться.
Вместо
CODE:
$p=preg_replace("#<img[^>]*>#i", 'Для просмотра картинок Вы должны авторизоваться.', $p);
может быть
CODE:
$p=preg_replace("#<img[^>]*>#i", '<img src="URL_картинки для неавторизованных" alt="Авторизуйтесь, чтобы видеть картинки" />', $p);

Если надо для одного раздела форума, изменяем условие:
вместо:
CODE:
if($GLOBALS['fm']->user['id'] === 0) {

пишем:
CODE:
if($_GET['forum']==='52' && $GLOBALS['fm']->user['id'] === 0) {

$_GET['forum']==='52' ограничивает, что данное условие будет действовать в форуме с ID=52 (в URL страницы соответствует значению forum=52

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0425]     [ ]