За последние 24 часа нас посетили 61017 программистов и 1766 роботов. Сейчас ищут 897 программистов ...

Влияние на "линки" посредствам "логина"

Тема в разделе "PHP для новичков", создана пользователем Amiak, 27 фев 2008.

  1. Amiak

    Amiak Активный пользователь

    С нами с:
    29 май 2007
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Подмосковье
    Есть необходимость все линки на сайте или те у которых есть кой нить отличительный "id" сделать при выводе пустыми - (неактивными), а как только юзвер залогинился на сайте то для него открываються все эти линки, т.е. становяться доступными!.

    Подскажите как это можно реализовать??
     
  2. shreck

    shreck Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    Покажи что ты сам для этого сделал.
     
  3. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Amiak
    Я бы сделал что-то такое:
    function link_content ($linkID, $user){
    if (user_exists ($user)){
    return текст который нам нужен
    }
    else return "#";
    }
    ...
    <a href='<?=link_content(1,$_SESSION['user']);?>'...

    Это если линков мало :)
     
  4. Amiak

    Amiak Активный пользователь

    С нами с:
    29 май 2007
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Подмосковье
    я пока ничего не делал...

    но смысл дошол у меня до такой же схемки..
    и сразу результат пошол о том что если линков будет под 2000... запарюсь такую базу линков вводит и тем более их отслеживать!..

    проше я думаю если рассматривать этот вариант то нуно сделать так
    Код (Text):
    1. function link_content ($linkID, $user){
    2. $1_link = "http;//www.kukuevo.ru";
    3. $2_link = "http;//www.kukuevo.ru/download";
    4. $3_link = "http;//www.kukuevo.ru/forum/";
    5. ............... и т.д.
    6.  
    7. if (user_exists ($user)){
    8. eval("return ".$linkID."_link;"); // за ошибки в синтаксисе сори, некогда проверять
    9. }
    10. else return "#";
    11. }
    12. ...
    во всевозможными упрощениями БД линков т.е. вынести все линки в БД или в файл и парсить их от туда!
    как думаете так резонно?
     
  5. Amiak

    Amiak Активный пользователь

    С нами с:
    29 май 2007
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Подмосковье
    и вообще я так думаю что всякая возможность этой реализации затронет такой алгоритм работы..!
     
  6. Clone

    Clone Guest

    Amiak, ну, допустим, сделай функцию register_rule_operator($link), которая будет добавлять куда-либо(например, в БД в таблицу) линки, которые доступны только зарегеным пользователям. При добавлении такого ресурса вызываешь эту функцию, она добавляет в хранилище(которое, кстати, можно закешировать) линк. И сделай другую функцию get_rule($link), которая возвращает true если линк присутствует в хранилище, и false в противном случае. А в коде вызывай что-то вроде if (is_user() || get_rule($link)) { echo '<a href="'.$link.'">...</a>'; }... Надеюсь понятно объяснил?;)
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Не, это извращение =)
    Когда пользователь логинится - ему куки ставятся или сессия создается или что? Код в студию!
     
  8. Amiak

    Amiak Активный пользователь

    С нами с:
    29 май 2007
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Подмосковье
    ребята вы оба имеете правильный ход мысли... соединив ваши две идее получиться вполне нормальный консенсус...

    в первом обе эти функции имеют место либоже совместить их в одну...
    во втором полюбасу придется использовать куки..
     
  9. Clone

    Clone Guest

    Amiak, а добавлять новую ссылку в хранилище "спецссылок" ты как будешь? Ручками чтоль?:)
     
  10. Amiak

    Amiak Активный пользователь

    С нами с:
    29 май 2007
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Подмосковье
    добовлять то их придется полбому вручную...
    а вот мониторить можно и автоматически...!
     
  11. Ruzzz

    Ruzzz Активный пользователь

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    Попробуй для таких ссылок выставить например class="for_users", а далее используй ob_start("callback"); где в функции callback с помощью регулярных выражений исщи все ссылки с class="for_users" и если нужно заменяй на "#" или вообще удаляй.

    Наверное это не лучшее решение, но как вариант.