![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| KoLiZeI |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 6.4.2007 Где: г. Саратов Репутация: нет Всего: нет |
Помогите пожалуйста сделать активацию через мыло:
1) Что нужно отправлять пользователю на мыло, как я понял отправляется определённая сессID, которая до момента активации хранится в бд для данного пользователя 2) нужна ли она будет потом, что нужно хранить в бд что бы аккаунт был неактивным до момента активации. как лучше это сделать подскажите! |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
KoLiZeI я бы сделал так:
1. генерим какоето число которое в дальнейшем подставим в запрос + сохраняем его в бд. 2. после того как юзер щелкнул по ссылке делаем проверку - правильное число или нет. З.Ы. по правде тут море вариантов все зависит от твоей фантазии... -------------------- Amazing |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Попробуйте сделать вот так.
Заведите параллельно к основной табличке пользователей ещё одну где будут хранится неавторизованные пользователи(хотя можно использовать и одну для) она будет отличаться от основной только полем в котором будет хранится некий уникальный идентификатор, как вариант идентификатор сессии. При регистрации пользователя вы заносите его данные в эту табличку и отправляете ему ссылку например такого вида http://mysite.ru/activation=уникальныйидентификатор. При переходе на неё происходит обрашение к табличке с неактивироваными пользователями проверяется есть ли там такой уникальный иденификатор после чего происходит занесение даных в основную табличку пользователей и уже после этого пользователю выводится предложение авторизоваться на сайте или можно его автоматически авторизовывать. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
krundetz а если свопадет уникальный индификатор еще 2 людей, т.е. они тоже авторизируются)
можно немного модернизировать 1. id - номер зареганного юзера 2. activation - сгенерированая строка. т.е. получим http://site/auth.php?id={номер}&activation={строка}. когда скрипт получает эти данные то подставляем в запрос SELECT * FROM table WHERE id={номер}, получаем значение поля activation и сравниваем его с полученным. -------------------- Amazing |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Тогда возможно лучше будет запрос такого вида: SELECT * FROM table WHERE id={номер} AND activation LIKE {строка} Кстати какой вариант предпочтительнее с одной табличкой для пользователей или с двумя для активированых и неакивировных пользователей. |
|||
|
||||
| MoLeX |
|
||||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
krundetz
толко наверное не
а строка:
???? -------------------- Amazing |
||||
|
|||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
MoLeX
да вы совершенно правы я имел в виду именно такой код. Можно узнать ваше мнение по поводу заданного мной несколькими постами выше вопроса? |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
если ты про это, то на мой взгляд: а смысл 2-таблицы? можно просто поле впихнуть дополнительно типо активирован юзер или нет. и еще лучше использовать 3-е поле - время регистрации, нам же не надо чтобы человек мог подтвердить регистрацию в течении скажем всего года, пусть это будет 24 часа или другое время. -------------------- Amazing |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
тоесть ты предлагаешь сделать поле activation в котором будет хранится либо YES либо уникальный идентификатор, и как только пользователь активируется оно меняет значение. Зачем добавлять ещё и время регистрации если обычно есть дата регистрации просто время нужно отсчитать от него дапустим не 24 часа, а трое суток. У меня возникает такой вопрос а как избавляться от неактивированиых пользователей мало ли пользователь взял да и ошибся при вводи почтового адреса. Сам сколько раз ошибался. Если переодически шерстить таблицу на предмет неактивированых пользователей у которых истек срок активации накладно может выдьте если записей много. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
krundetz а как срипт сможет отсчитать когда юзер попытался зарегаться?
Добавлено через 5 минут и 8 секунд
просто скриптом смотреть и удалять их... -------------------- Amazing |
|||
|
||||
| KoLiZeI |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 6.4.2007 Где: г. Саратов Репутация: нет Всего: нет |
Спасибо всем огромное за помощь, воспользовался методом krundetz с дополнительной таблицей для хранения временных аккаунтов!
Добавлено через 3 минуты и 53 секунды
Тогда ещё в основной таблице надо хранить уникальный номер и активный/неактивный, плюс в моём случае это задача появилась в процессе работы, когда уже основная работа сделана, и вся выборка идёт по активным аакаунтам, и чтобы делать ещё проверку на активность, займет слишком много времени что бы всё переделывать. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
если проект будет посещаемый и популярным то не следует так делать, ведь тебе прийдется переносить данные из одной таблицы в другую (или я не прав?), что наложит след на скорость работы... -------------------- Amazing |
|||
|
||||
| KoLiZeI |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 6.4.2007 Где: г. Саратов Репутация: нет Всего: нет |
||||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
это понятно что один раз. ладно насколько помнится MySQL уютно себя чуствует при ОЧЕНЬ большом кол-ве поситителей (точное значение не помню, так что и не буду врать), так что нечего страшного по сути не будет
-------------------- Amazing |
|||
|
||||
| krundetz |
|
||||||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Почему наложит? Мы же в любом случае будем вставлять данные, а при однатобличном варианте у нас потом ещё добавится один запрос на изменнение данных при активации. Тоесть таблица пользователей самая часто используемая почти во всех проектах, особенно форумах, будет испытывать при однотобличном варианте большую нагрузку на один запрос. По определению вторая таблица неактивированых пользователей должна получится меньеше значет и сделать очистку в соответствие с определенным условием будет легче. Вот так я рассуждал, может я ошибаюсь, поэтому прошу высказывать своё мнение.
Очень просто у нас есть поле в котором есть дата регистрации даем на регистрацию 3 суток создаем скрипт который будет чистить таблицу и будем его вызывать кроном в 24 часа раз за сутки. Это мой вариант.
ну я исхожу из того что у нас не выделеный и даже не виртуальный сервер а самый простой вируальный хостинг |
||||||
|
|||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |