Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подтверждение по email, расскажите пока принцип 
:(
    Опции темы
R.M.
Дата 10.9.2005, 03:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



Вроде всё просто
Юзер заполняет форму, форма приходит ему на мыло вместе с ссылкой на подтверждение
Юзер щёлкает по ссылке подтверждения и всё ок.

Принцип на скока я понял:
1) в базе создаётся строка с генерируемым именем (типа он ожидает регистрацию)
2) Ссылка на неё приходит вместе с формой
3) если юзер заходит по ней строка удаляется
При входе идёт проверка на существование такой строки если она есть пишем "вы не подтвердили" заявку, если нету то всё ок

Правильно ли я мыслю?


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 10.9.2005, 04:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Можно делать по-разному. Можно, например делать добавочное поле в таблице юзеров типа - activate, значения у которого будут соотвественно yes и no. И просто проверять эти значения.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
R.M.
Дата 10.9.2005, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



-=Ustas=-

А на что тогда делать ссылку?


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 10.9.2005, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Выводишь какой-нить отдельный блок в структуре программы, где принимаешь эту ссылку, ссылка должна быть сформирована, чтоб в ней было значение этого блока и id-ишник юзера. И всё. Потом проверяешь в БД, в поле activate, если допустим там значение No, то меняешь его Yes и сообщаешь пользователю, что его учетная запись была активирована, если же там уже стоит Yes (может юзера втыкает переходить по этому линку smile), то выводим ему сообщение, что его запись уже активирована, и типа нефиг баловаться с этой ссылкой. Элементарно, Ватсон! smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
R.M.
Дата 10.9.2005, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



-=Ustas=-

Т.е. мне надо rand'ом сгенерировать число например и добавить вначало или в конец id юзера и сделать из этава ссылку или как?


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 10.9.2005, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



1. Сохраняем в БД - код подтверждения. И время. Таймаут - обязателен. К примеру - сутки.
2. ОТправляем код на почту, можно и ссылкой.
3. При клике на ссылку или вводе кода в специальной форме идет проверка этого кода, сохраненного в п.1.
4. Есть есть, замечательно, делаем что надо, к примеру регим окончательно пользователя, нет - значит нет.
PM ICQ   Вверх
R.M.
Дата 11.9.2005, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



Непонимаю как сделать чтобы скрипт узнал с каким кодом пришол юзер (без формы), если ссылка например lalala.php?code=rhf893274j8932 то как узнать что это юзер с полем code = rhf893274j8932


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 11.9.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Куксикус а что $_GET['code'] уже не катит?
PM ICQ   Вверх
-=Ustas=-
Дата 11.9.2005, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Делаешь ссылку к примеру такой: lalalal.php?code=rhf893274j8932&id=635, где id - это id-ишник юзера в базе (ты должен вылавливать его перед отправкой письма), код этот помещаешь допустим в поле activate_code в таблице юзеров. При получении этой строки, выбираешь инфу юзера по его id-ишнику, сверяеш код, и если он совпадает, то активируешь юзера.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
R.M.
Дата 11.9.2005, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



Mal Hack, -=Ustas=-

буду пробывать


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
R.M.
Дата 12.9.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



Вот мне ещё чтото не справица, сделал я так что при подтверждении в поле code код заменяется на слово confirmed и неполучается мне отличить неверность кода от confirmed

Код

$select = "SELECT * FROM confirm WHERE id = '".$id."' AND code = '".$code."' ORDER BY id DESC LIMIT 0, 1";
$qselect = mysql_query($select);
$row = mysql_fetch_array($qselect);

if ($code == $row['code'])
{
$upd = "UPDATE confirm SET code = 'confirmed' WHERE id = '".$id."' AND code = '".$code."'";
$qupd = mysql_query($upd);
echo "Заявка активирована";
}
elseif ($row['code'] = "confirmed")
{
echo "Вы уже активировали заявку";
}
elseif ($code != $row[code=php] && $row['code'] != "confirmed")
{
echo "Неверный код";
}


Это сообщение отредактировал(а) Куксикус - 12.9.2005, 13:02


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 12.9.2005, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



А синтаксис и логику соблюдать не пробовал?! Попробуй так:
Код

$select = "SELECT
               *
           FROM
               confirm
           WHERE
               id = '".$_GET['id']."'
           AND
               code = '".$_GET['code']."'
           ORDER BY
               id
           DESC
           LIMIT 0, 1";
$qselect = mysql_query($select);
$row     = mysql_fetch_array($qselect);

if ($row['code'] == $_GET['code']) {
    $upd = "UPDATE
                confirm
            SET
                code = 'confirmed'
            WHERE
                id = '".$_GET['id']."'
            AND
                code = '".$_GET['code']."'";
    if (mysql_query($upd)) {
        echo "Заявка активирована";
    }
} else if ($row['code'] == "confirmed") {
    echo "Вы уже активировали заявку";
} else if ($row['code'] != $_GET['code'] && $row['code'] != "confirmed") {
    echo "Неверный код";
}



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
DRUG_ADDICT
Дата 18.12.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



Да да да... вот я тоже самое делаю что R.M., тока зайдя сюда я уже все что написано выше сделал и ссылку сгенерировал и в хеш её превратил и код генерируется, чтоб потом его в форме подтверждения регистрации писать...  и это все сделал... 

Юзер зарегистрировался 15 ($dara_reg) числа, ЕМУ дается 3 дня чтобы он подтвердил регистрацию, то есть конечная дата это 18 число ($end_data): 

Код

$data_bd = $row[2]; //Берем дату регистрации с базы имеет вид как - 15.12.07

$data = explode(":",$data_bd); //вытаскиваем день а именно число "15"

$end_data = $data[0] + 3; // получаем конечную дату "18"

$time = time(); // получаем настоящую дату в виде "временной метки"

$time_f = date("d.m.Y",$time); // преобразуем временную метку в "наш" формат времени или хз как он называется... в виде 31.12.07

$time_d1 = explode(":",$time_d); // берем снова число настоящего времени оно будет "X" - ну или пусть -"31"


В итоги у нас есть: 15 - начало регистрации, 18 - собсно конец и X или 31 - это время которое щас ну допустим было бы оно щас smile)) вообщем хочу подметить кто не понял 31 число может быть АБСОЛЮТНО ЛЮБЫМ числом от 1 до 31 вот так ;)

Как все составить с помощью конструкции if ( ){ } else { } ?


--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0976 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.