Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 25 Май, 2012, 09:07:16

Страниц: [1] 2
Печать
Автор Тема: Прошу помочь. Smarty + php  (Прочитано 326 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maximum_ru    ↓ 
05 Июнь, 2011, 04:09:02
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

Все выходные ковыряю интернет, но проблема не решается.
 
Проблема такая...
Сайт построен с применением smarty
 
На сайте есть папка с фотографиями, имеющими адреса вида... http://sitename.ru/images/photos/12345.jpg (и так далее)
На странице , например view.php (в соотв. шаблоне view.tpl) имеется код.
 
Text

{section name=pm_loop loop=$pms}
{if $pms[pm_loop].ps_photo}
<a href="{$pms[pm_loop].ps_photo}" target="_blank">
    <img  src="{$pms[pm_loop].ps_photo}" width="150px"/>
</a>
{/if}
{/section}
 
где $pms[pm_loop].ps_photo является по сути адресом картинки
 
Я хочу лишить всех возможности заходить по ссылке http://sitename.ru/images/photos/12345.jpg и видеть фото.
для этого пихаю в папку с картинками .htaccess, где запрещаю все и всем.
После этого создаю файл viewfoto.php, где пишу
PHP
<?php
$bububu="вот тут не знаю что писать";
header("Content-Type: image/gif");
readfile($bububu);
?>

переменной bububu надо как-то дать адрес картинки (тот, который $pms[pm_loop].ps_photo)
Но я не понимаю как это сделать. Видимо надо как-то передать значение из tpl файла в viewfoto.php. Мне это не под силу оказалось.
 
Возможно есть какое-то более простое решение, но я его не вижу.
Прошу помощи :)
 
Также есть вопрос по поводу запрета в htaccess(deny from all) - не помешает ли он функции readfile прочесть картинку?
Спустя 2 минуты 47 секунд добавил
забыл написать, что в view.tpl, соответственно, нужно будет заменить ссылку на <a href="viewfoto.php">тут текст или картинка</a>
Записан
Frozzeg    ↓ 
05 Июнь, 2011, 04:10:35 , спустя 1 минуту 33 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5499
Сила слова: 1.67

я не атец программинга, но сделал бы так:
 
вместо ссылок типа 1024.jpg были ссылки viewfoto.php?=1024.jpg, т.е. в гет параметре передаем название картинки в управляющий скрипт, который уже определяет можно ли показать эту каритнку или нет
 
ну и с помощью mod_rewrite можно превратить ссылки вида viewfoto.php?=1024.jpg в 1024.jpg
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
maximum_ru    ↓ 
05 Июнь, 2011, 04:23:12 , спустя 12 минут 37 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

передаем название картинки в управляющий скрипт, который уже определяет можно ли показать эту картинку или нет
проблема в том, что в этой папке хранится куча фото (пользователи прикладывают к личн. сообщениям фото и отсылают другим пользователям) Т.е. фото должно быть доступно для двоих (отправитель и получатель)
И сваять такую проверку я не смогу - она мне кажется многократно сложнее того способа, который я тут описал. Вот.
 
Вся возня для того, чтобы никто не мог написать в браузере http://sitename.ru/images/photos/1.jpg, потом поменять цифру на 2 и посмотреть второе фото и так далее. И в то же время чтобы два пользователя видели данное фото.
Как то так. Может пытаюсь изобрести велосипед.
Записан
Frozzeg    ↓ 
05 Июнь, 2011, 04:25:49 , спустя 2 минуты 37 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5499
Сила слова: 1.67

вообще на такой случай хеш придумали )
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
maximum_ru    ↓ 
05 Июнь, 2011, 04:30:10 , спустя 4 минуты 21 секунду
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

вообще на такой случай хеш придумали )
а где почитать про это? и какой запрос в поиске?
 
я в программировании вообще не рублю, и чую, что хэш - это дебри)
Записан
Frozzeg    ↓ 
05 Июнь, 2011, 04:32:34 , спустя 2 минуты 24 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5499
Сила слова: 1.67

хеш это рандом, файлы нужно сохранять ввиде jakd456w54dq65adas54dqw.jpg
 
почитай про функцию md5() :D
 
ну проблему с уже загруженными картинками это не решит
 
хотя можно пройтись по всем файлам и переименовать
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
maximum_ru    ↓ 
05 Июнь, 2011, 04:38:33 , спустя 5 минут 59 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0


хеш это рандом, файлы нужно сохранять ввиде jakd456w54dq65adas54dqw.jpg
почитай про функцию md5() :D

спасибо, почитаю.
но, отвлекаясь от рандомных имен, - не знаешь как присвоить переменной $bububu нужный адрес, который знает view.tpl ?
я читал про get_template_vars (вроде то что нужно) но реализовать все же не удалось.
Записан
Frozzeg    ↓ 
05 Июнь, 2011, 05:00:26 , спустя 21 минуту 53 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Пятросянище

Карма: 92
Сообщений: 5499
Сила слова: 1.67

не знаю
Записан

Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор.
Отложить на завтра — значит впасть в рекурсию. © Frozzeg
md5    ↓ 
05 Июнь, 2011, 06:36:30 , спустя 1 час 36 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19

тебе надо написать rewrite, который адрес http://sitename.ru/images/photos/12345.jpg направит на скрипт и передаст в виде параметра - запрашиваемую картинку, ты ее в скрипте откроешь через file_get_contents и отдашь
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
maximum_ru    ↓ 
05 Июнь, 2011, 06:58:33 , спустя 22 минуты 3 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

тебе надо написать rewrite, который адрес http://sitename.ru/images/photos/12345.jpg направит на скрипт и передаст в виде параметра - запрашиваемую картинку, ты ее в скрипте откроешь через file_get_contents и отдашь
я php не знаю абсолютно, smarty тоже.
эта рекомендация мне в простой логике понятна. но интерпретировать в код я ее не могу :(
я полагал, что смогу какой нибудь код вписать вместо "вот тут не знаю что писать"... например "взять значение переменной ($pms[pm_loop].ps_photo) из view.php"
 
вот. а file_get_contents и хэши уводят меня в дебри. Я прекрасно понимаю, что оно так и правильней и проще и все такое. Но не могу я это осилить)) Для этого нужно php изучить сначала. А мне, во-первых, хочется "стулья вперед", а во вторых за php я брался уже не один и не два раза. Не понимаю я его. Или не по тем "учебникам" начинаю изучать.
так что фактически я, видимо, отношусь к тем, кому необходимо "написать за них", но кагбэ и не надеюсь ни на что.
 
так что за советы спасибо огромное, но реализовать у меня их не получается :(
Записан
md5    ↓ 
05 Июнь, 2011, 07:00:57 , спустя 2 минуты 24 секунды
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19

ну, значит не правильно выбран раздел
перенеси в предлагаю работу и кто-нибудь тебе сделает это за деньги, там дел не на долго и не на дорого
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
artoodetoo    ↓ 
05 Июнь, 2011, 07:09:11 , спустя 8 минут 14 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

Я хочу лишить всех возможности заходить по ссылке http://sitename.ru/images/photos/12345.jpg и видеть фото.
Проблема твоя называется "хотлинкинг". Есть классическое решение через проверку HTTP_REFERER в .htaccess. При этом не надо ничего программировать на PHP.
Гугль: htaccess HTTP_REFERER image hotlinking
Пример: http://www.hongkiat.com/blog/smarter-way-to-prevent-image-hotlinking-with-htaccess/
 

 
Записан
maximum_ru    ↓ 
05 Июнь, 2011, 07:17:29 , спустя 8 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

artoodetoo
вот как раз над реврайтом я бился до 4 утра сегодня :)))
И вобщем то опять же все просто - нужно чтобы файлы(фотки) данной папки могла просматривать только страница viewfoto.php (на которую приходишь с view.php). И все равно у меня не получилось. Выходило, что либо почему то все могут смотреть, либо никто.
Да и проблему мою это решило бы не до конца. Ведь я не могу readfile - у указать ссылку на фото на основе переменной.
Спустя 1 минуту 32 секунды добавил
вот тут http://www.beget.ru/art9.html кстати хорошая статья про htaccess
Спустя 1 минуту 2 секунды добавил
еще это называется антилич
Записан
artoodetoo    ↓ 
05 Июнь, 2011, 08:51:11 , спустя 1 час 33 минуты 42 секунды
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

maximum_ru, ты чертов мозгоеб. не надо биться, сделай как делают уже три поколения вебмастеров. только не косячь.
когда проверяешь результат, имей в виду, что твой браузер охуенно хорошо кеширует картинки.
если ты видишь картинку это не значит, что она реально доступна. возможно браузер и не пытался ее прочитать заново. делай поправку.
Записан
maximum_ru    ↓ 
05 Июнь, 2011, 09:11:20 , спустя 20 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

artoodetoo
мозгоеб - возможно. но не долбоеб ни разу. про ctrl + f5 слышал
сам бы уже давно не ломался и написал мне код, если силен в энтом деле. потренировался бы как раз
Записан
Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Sinkler