Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 1 / 1
Регистрация: 19.06.2015
Сообщений: 2
1

Код активации E-mail

19.06.2015, 09:48. Показов 1461. Ответов 1
Метки нет (Все метки)

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

Есть программа, над которой я работаю. К ней я добавил dll файл для работы с http-запросами. Эта dll умеет скачивать файлы.
Есть сайт и база данных, на которых есть обработчики событий в программе. Я сделал рабочую регистрацию и вход. Так как dll скачивает файлы, я сделал так, чтобы при успешной регистрации, допустим, возвращалась строка "RegisterSuccess", и внутри программы уже обрабатывал ответ с веб-сервера. Решил сделать E-mail подтверждение для пользователей. Теперь у меня есть проблемы. Итак, исходный код веб-части:



PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Email<?php
 
function generateCode($length) {
 
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789";
 
    $code = "";
 
    $clen = strlen($chars) - 1;  
    while (strlen($code) < $length) {
 
            $code .= $chars[mt_rand(0,$clen)];  
    }
 
    return $code;
 
}
 
mysql_connect("localhost", "•••••_bd", "•••••••••••");
mysql_select_db("••••••••_bd");
 
if(isset($_GET['login'])){ // Первый обработчик (проверка активации аккаунта)
 
$login = $_GET['login'];
 
$query = mysql_query("SELECT activated,secretcode,email FROM users WHERE user_login='".$login."' LIMIT 1");
 
$data = mysql_fetch_assoc($query);
 
if($data['activated'] == 1){
  echo 'Activated';
  break;
} 
 
if($data['activated'] == 0 and $data['secretcode'] == ''){
  echo 'NotActivated';
  $secretcode = generateCode(12);
  $query = mysql_query("UPDATE users SET secretcode='".$secretcode."' WHERE user_login='".$login."' LIMIT 1");
  mail($data['email'],'Проверочный код','Доброго дня, пользователь HelpVPS!\r\n Проверочный код: '.$secretcode.'\r\n Введите его в программе для активации.');
}
 
if($data['activated'] == 0 and $data['secretcode'] !== ''){
  echo 'Sended';
  break;
}
 
}
 
if(isset($_GET['secretcode']) and isset($_GET['login'])){ // Второй обработчик (введён код подтверждения)
  $query = mysql_query("SELECT secretcode FROM users WHERE user_login='".$_GET['login']."' LIMIT 1");
  $data = mysql_fetch_assoc($query);
  if($data['secretcode'] == $_GET['secretcode']){
    $query = mysql_query("UPDATE users SET activated=1 WHERE user_login='".$_GET['login']."'");
    echo 'Activated';
    break;
  } else {
    echo 'Sended';
  }
}
 
?>
В результате выполнения этого скрипта, программа должна скачать исходный код html-файла (то бишь, слово). В данном случае возвращаются три варианта для первого обработчика:
EmailActivated - электронная почта подтверждена
EmailNotActivated - выслано письмо
EmailSended - письмо было выслано ранее

Вот второй обработчик не работает. Подскажите, как решить проблему. Буду очень признателен.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2015, 09:48
Ответы с готовыми решениями:

Запрет повторного нажатия на ссылку активации в e-mail
Здравствуйте! Не могу никак понять в какую сторону копать. Есть форма: &lt;form class=&quot;BRMeet&quot;...

Код активации
Как можно создать ограничение в свой программе для ползавателей ваш программы. Например он через 15...

Код активации
Доброго времени суток. Я пытался вернуть виндоус в исходное состояние, и поже она крэшнулась и мне...

Код активации для коммутатора
Кто-нибудь знает, зачем для коммутатора нужен код активации? Серия Catalyst 2960

1
2266 / 2165 / 543
Регистрация: 27.05.2011
Сообщений: 7,444
19.06.2015, 11:53 2
Лучший ответ Сообщение было отмечено Chronos_ms как решение

Решение

PHP
1
2
3
4
Первый иф:
if(isset($_GET['login'])){ 
Второй 
if(isset($_GET['secretcode']) and isset($_GET['login'])){
Если второй иф тру, то и первый будет тру. А первый убивает скрипт внутри себя. Будет подан $_GET['secretcode'] или нет, всегда первый иф будет работать
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2015, 11:53

Утерян код активации на Windows 7!
Что делать если потерялся код активации на Windows 7 лицензионный??

Как считать код активации Windows?
Привет! Есть вопрос: существует ли программа, которая считывает код(ключи) активации Windows? И как...

Код для активации Windows Vista.
Всем привет! Я канечно извеняюсь за тему БАЯН. Но я не знаю что делать! Проблема вот: Кароче...

gss visual assembler 3.9 нужен код активации
Люди добрые, помогите мну нубу! Нужен activation code на GSS VISUAL ASSEMBLER 3.9 Случайно...

Можно ли вытащить код активации Windows из реестра?
Друзья, добрый вечер, Проблема в том, что я не могу переустановить &quot;виндовс&quot; посредством...

Как в EXE файле узнать код Активации
вот эта прога кпо сможет помоч?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru