Как сделать платную регистрацию?

Тема в разделе "Как сделать...", создана пользователем bvb, 5 авг 2010.

Статус темы:
Закрыта.
  1. bvb

    bvb

    Регистр.:
    17 май 2009
    Сообщения:
    190
    Симпатии:
    34
    Хочу сделать такую регистрацию: состоит двух этапов, на первом вводим рег. данные на втором предлагаем оплатить, после успешной оплаты завершаем регистрацию(запись в БД, отправка письма). Проблема в том, где хранить рег. данные, пока происходит оплата. Что посоветуете?
     
  2. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    Так можно, допустим, отправить на мыло какую-нибудь ссылку со сгенерированным числом.
    И записывать при нажатии в сессию.
     
  3. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    ИМхо делай регистрацию бесплатную но отключай весь функционал до внесения оплаты ....
    данные храни в той же таблице где и обычные проплаченные юзеры лишь добавь булевский ( или перечисление) признак оплачено / не оплачено ....

    таким макаром юзер сможет зарегаться а чуть позже внести оплату и начать работать.... ну а его введенные регистрационные данные сохраняться .... имхо для юзера так будет удобней ( хотя это еще зависит от назначения ресурса )
    ========

    ну или храни в другой таблице а после внесения оплаты переноси все данные из таблицы непроплаченные_юзеры в таблицу проплаченные_юзеры
     
    bvb нравится это.
  4. bvb

    bvb

    Регистр.:
    17 май 2009
    Сообщения:
    190
    Симпатии:
    34
    Digwnews
    Я не понял, что вы имеете в виду. Просто записать все данные в сессию?
    chang
    Такой ход я рассматривал, но есть причины по которым он не совсем подходит

    Есть еще варианты?
     
  5. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Да блин, какие тут могут быть варианты? Если хочешь, чтоб не проебалась инфа, которую юзер вводил в формочку - значит надо эту инфу где-то у себя хранить, логично? Тебе предлагают хранить в базе. А поскольку инфа эта точь-в-точь повторяет юзерские аккаунты, то и хранить ее логично в той же таблице users / members. Не хочешь хранить ее там - заведи отдельную табличку nedousers / nedomembers, и потом при оплате оттуда копируй в основную. Не хочешь базу - сохраняй в файл. Письмом еще можешь отправлять, а при оплате по pop3 из этого письма обратно считывать. Вариантов масса на самом деле, но chang предложил самый простой.
     
  6. bvb

    bvb

    Регистр.:
    17 май 2009
    Сообщения:
    190
    Симпатии:
    34
    А что насчет сессий?
     
  7. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    сессия а что оплата идет долго=)
    или я закрыл браузер
    самый оптимальный с СуБД, если хорчется сессию то ее тоже хранить в СуБД в сериализованном виде но зачем...
     
    bvb нравится это.
  8. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Открою небольшой секрет, "сессия" хранится в файле на диске. Можно настроить, чтоб хранилась в базе данных. И да, можно настроить, чтоб хранилась хоть год (по умолчанию - 15 минут). Но все равно надежнее самому.

    PS: Еще можно не хранить у себя, а запихнуть всю инфу юзеру в куку. Тоже в принципе вариант, тоже немного "каличный". Как ни крути, а то, что предложил chang - самое лучшее.
     
  9. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    В общем хранить данные пока что можно только в трёх видах:
    1. В БД
    2. В файлах
    3. У юзера в куках.
    Выбор за вами.

    Или я не прав?
     
  10. bvb

    bvb

    Регистр.:
    17 май 2009
    Сообщения:
    190
    Симпатии:
    34
    Хорошо, с этим разобрались. Теперь такой вопрос: когда юзер оплачивает регистрацию, платежной системе нужно отправить уникальный номер транзакции, для этого планирую использовать id последнего заказа + 1 - как правильно его получить? С помощью LAST_INSERT_ID() или SELECT id FROM `имя_таблицы` ORDER BY id DESC limit 1?
     
Статус темы:
Закрыта.