Создание временной проверки с PHP и MySQL - PullRequest
0 голосов
/ 02 апреля 2009

Как мне создать систему, в которой пользователь должен щелкнуть ссылку для подтверждения чего-либо.

Допустим, на моем веб-сайте у каждого пользователя есть свои папки, которые не являются общими. Я хочу, чтобы они были опцией для каждого пользователя на странице его учетной записи, в которой они могут создать доверительные отношения с другим пользователем для доступа к папкам друг друга. Возможно, введя имя пользователя, которому он хочет создать доверие.

Таким образом, в этом случае пользователь Джим вводит в поле ввода создания доверия «Tom», и поэтому необходимо установить доверие. Я полагаю, А) Должно быть что-то, что хранит запрос Джима, Б. затем назначает его непроверенным, С. и, наконец, затем отправляет ссылку проверки на соответствие Тому. Том потом получает сообщение как-нибудь? (пока не уверен), может быть, есть что проверить и посмотреть, есть ли какие-нибудь ссылки для проверки Тома? а затем Том щелкает ссылку подтверждения, отправленную, чтобы убедиться, что он также хочет установить доверие с Джимом. как только Том щелкнет по нему, А. скажет, что это было сохраненным запросом Джима, который Том принял, Б. назначит проверку как проверенную С. уведомит Джима, что запрос Тома принят или отклонен.

ОДНАКО также должен быть способ удалить хранилище проверки (каким бы оно ни было), если истечет 24 часа или Том отклонит запрос Джима.

Может кто-нибудь помочь мне? :)

Ответы [ 3 ]

1 голос
/ 02 апреля 2009

Если вы используете базу данных, это просто. Просто создайте своего рода уникальный идентификатор для каждого запроса и сохраните запрос (со статусом «ожидающий ответ» или аналогичный) в базе данных, а затем отправьте электронное письмо Тому со ссылкой на одну из ваших страниц php с уникальным идентификатором запрос в строке запроса.

Таким образом, вы можете сохранить обновление поля «время приема» для запроса, чтобы каждый раз, когда Том нажимал на ссылку в своем письме, и изменять статус на «принято».

Логично определить, прошло ли 24 часа, и вы можете отказать в доступе к доверенному общему ресурсу после этого периода времени.

1 голос
/ 02 апреля 2009

Вы можете определить таблицу с атрибутами:
-Уникальный ID
-ID1 (от лица 1)
-ID2 (от лица 2)
-Валидированное состояние (ИСТИНА ИЛИ ЛОЖЬ)
-Валидационный хэш MD5 (имя (ID1) + RANDOM (100,99999), имя (ID2))
-Дата и время запрашиваемых отношений
-Другая информация, относящаяся к системе, которая нуждается в этой функции ...

Затем вы продолжаете, как вы сказали.
1) 05.12.2009 в 17:25 Том (ID = 15) просит Марка (ID = 21) присоединиться к его сети, а затем ваш скрипт добавит данные в таблицу следующим образом:
-Уникальный идентификатор: присваивается автоматически с помощью автоинкремента
-ID1: 15
-ID2: 21
Подтверждено: False
-Валидационный хэш MD5: MD5 («Том». 42574. «Марк») = bedbcfc6e679be69ff3587f15213c83f
-Дата и время: 5.12.2009 в 5:25 вечера
-Другая информация, относящаяся к системе, которая нуждается в этой функции ...

Убедитесь, что перед установкой данных в базу данных проверьте наличие дубликатов.
После этого сотрите все поля, дата и время которых старше 24 часов = D

2) Если дубликатов нет, отправьте письмо Марку со ссылкой на вашу страницу, включая хэш md5 в качестве атрибута Get URL-адреса. Давайте посмотрим на имя страницы validate.php? H = bedbcfc6e679be69ff3587f15213c83f

3) Ваш скрипт validate.php получает запрос с параметром get h = bedbcfc6e679be69ff3587f15213c83f
Перейдите к chek de db.
Если хеш существует, а дата и время не старше 24 часов, установите для Validated значение true и отправьте письмо на электронную почту Тома с информацией о его новом друге.
Если хеш не существует, сообщите об этом Марку через результаты проверки страницы.

Хорошо. Это все. Надеюсь, он вам пригодится.

1 голос
/ 02 апреля 2009

Звучит как хорошая работа для базы данных. Когда пользователь A запрашивает общий ресурс, он заносится в базу данных как ожидающий. Когда пользователь B получает уведомление, он может щелкнуть ссылку, скрипт которого проверит базу данных на предмет исходного запроса, подтвердит, что это в течение 24 часов, и если это так, запись базы данных будет обновлена ​​как принятая или отклоненная. Если истекло 24 часа, запись обновляется как просроченная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...