Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Скрыть ссылку от незарегистрированных пользователей
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Добрый день, господа.
Помогите пожалуйста придумать логику работы такой задачи.
Нужно сделать так, чтобы ссылки, находящиеся в статье, на скачивание файлов с сайта, для зарегистрированных пользователей вели себя обычно, а вот не зарегистрированных вели бы к регистрации.
В админке для формирования статьи используется tinyMCE. Первой мыслью было добавить свою кнопку аля hidden_content, но тут во время реализации возникли некоторые трудности.
Второй идеей было давать ссылке на скачивание определенную id и затем парсить полученную из базы статью, выискивать там эту ссылку и подменять атрибут href.
В общем оба способа показались мне немного муторными, может быть есть более логичный и одновременно простой способ это сделать?
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
А что мешает при открытии страницы определять, есть ли сессия (авторизация) и если отсутствует, то просто менять href у ссылки? По-моему, простой и логичный способ.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
maksmib
Отправлено: 20 Мая, 2011 - 15:27:07
Гость
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
EuGen пишет:
А что мешает при открытии страницы определять, есть ли сессия (авторизация) и если отсутствует, то просто менять href у ссылки? По-моему, простой и логичный способ.
Ну, определить авторизован пользователь или нет, это не проблема.
Я наверное сильно обленился, действительно подменить href наверное самый простой вариант
maksmib
Отправлено: 20 Мая, 2011 - 17:38:22
Гость
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Если кому пригодится, реализовать можно например так:
Тоесть в тексте статьи переберается все, что похоже на ссылку, затем проверяем ведет ли эта ссылка к файлам на нашем сайте, если таки да, то подменяем ссылку на файл, ссылкой на регистрацию.
Очень хотелось бы услышать замечания о корявасти данного способа.
EuGen
Отправлено: 20 Мая, 2011 - 17:46:36
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Да, не очень оптимален. Чем preg_replace плох ?
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
maragon
Отправлено: 20 Мая, 2011 - 18:47:18
Посетитель
Покинул форум
Сообщений всего: 340
Дата рег-ции: Февр. 2011
Помог: 2 раз(а)
Можно решить проблеммую с помощью тех же сессий,кук, как по мне самый простой варик.
Далее если нет сессии \ куки - делаем переброс на страницу регистрации, либо указываем ссылку типо:
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
EuGen пишет:
Да, не очень оптимален. Чем preg_replace плох ?
Не то чтобы плох, очень я не силен в регулярных выражениях, не знаю, как сделать тоже самое используя preg_replace , а разбираться с регэкспами пока только в планах, поэтому было вот такое решение, потому что для меня оно быстрее.
Буду признателен если увижу аналог этого решения с исп. preg_replace
maragon пишет:
Можно решить проблеммую с помощью тех же сессий,кук, как по мне самый простой варик.
Далее если нет сессии \ куки - делаем переброс на страницу регистрации, либо указываем ссылку типо:
Так и делается, с помощью сессий,кук.. (я просто не описывал это в приведенном примере кода, т.к. суть проблемы не в этом) если юзер не авторизован, вот тогда и колбасим текст в поисках урлов, которые надо "подменить". Изначальна проблема именно в том, чтобы найти необходимые ссылки и подменить их href
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.