Временные ссылки

Тема в разделе "PHP", создана пользователем Sachek, 3 янв 2011.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    385
    Симпатии:
    102
    Приветствую, подскажите пожалуйста как сделать для скрипта интернет магазина - временные ссылки, то бишь индивидуальная ссылка, которые генерируется на 1 комп и в течении скажем 36 часов. Я примерно алгоритм представляю, но вот как реализовать полностью в коде не совсем понял. Алгоритм похож на файлообменники. Заранее спасибо.
     
  2. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    Ссылка нужна на корзину с уже выбранными товарами?
    ставишь куку на определённое время, в бд заносишь индивид данные(заказанные товары).
     
  3. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    385
    Симпатии:
    102
    Не совсем, мне по сути надо просто скрипт, к корзине я его потом сам приляпаю. Мне надо, что бы генерилась ссылка. К примеру файл с видяшкой лежит по адресу syte.ru/upload/1.avi а на мыло к пользователю придет ссылка syte.ru/upload/SDADHjkhpfpw3clxvh15sd/ ну или как то так :) И ссылка это удаляется через 30 часов к примеру. Мне вот интересен сам алгоритм генерации ссылки по отношению к настоящему расположению файла.
     
  4. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    ссылка генерится рандомо, а в таблице в бд хранить соответствие:
    временная -> реальная
    ну и при обработке в скрипте временной ссылки учитываем это
     
  5. Phrack

    Phrack

    Регистр.:
    3 ноя 2010
    Сообщения:
    264
    Симпатии:
    38
    эффект временности ссылки можно достигнуть добавлением чего-то вроде expires, которое будет хранить то время, до которого ссылка действительна. При активации\запросе проверять это время. Раз в какой то промежуток времени дропать все линки, у которых expires прошло
     
  6. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    385
    Симпатии:
    102
    Я конечно благодарен всем :) Но можно на реальном примере что ни будь? Я имею ввиду код сам :) Хоть кусок. Я уже говорил, что примерно картину представляю(говорил еще в первом посту), а вот в виде кода как раз таки и нет :)
     
  7. nullsab

    nullsab Постоялец

    Регистр.:
    5 июн 2007
    Сообщения:
    65
    Симпатии:
    10
    1. создаешь уникальный идентификатор, например так:
    PHP:
    $newsess md5(uniqid(microtime()));
    2. записываешь в db, в формате:
    Код:
    t_url;url;dat
    3. Отправляешь линк юзеру:
    PHP:
    $temp_url 'http://site.com/t-' $newsess '.html';
    4. Перед отдачей контента удаляешь все истекшие:
    Код:
    "DELETE FROM temp_url WHERE TO_DAYS(NOW()) - TO_DAYS(dat) > 1
    берешь $blabla из урла, по которому юзер перешел, например регуляркой:
    Код:
    '~^/t-([a-z0-9]+).html$~i'
    и проверяешь наличие:
    Код:
    SELECT url FROM temp_url WHERE t_url='{$blabla}'
     
    Sachok321 нравится это.
  8. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    385
    Симпатии:
    102
    А на каком этапе прописывается реальная (действующая и постоянная) ссылка...
     
  9. propovednik

    propovednik Постоялец

    Регистр.:
    16 май 2008
    Сообщения:
    104
    Симпатии:
    21
    После того как получил данные из базы (в примере выше это)
    PHP:
    SELECT url FROM temp_url WHERE t_url='{$blabla}'
    После делаешь symlink (легче, но на шаред хостинге не пойдет), или читаешь и отдаешь файл построчно (лишняя небольшая нагрузка, реализуемо везде)
     
  10. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    385
    Симпатии:
    102
    У меня серв свой.
    А где задается переменная $blabla ?
    И можно чуток поподробнее про "symlink"
     
Статус темы:
Закрыта.