Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 21.11.2018
Сообщений: 5

Подтверждение почты

15.04.2020, 16:30. Показов 1283. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел подтверждение почты,переделал под сайт но после подтверждения выдает ошибку.Вроде не критично но не приятно.В php не очень разбираюсь.
Вот код:

PHP
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php 
 
 
//Добавляем файл подключения к БД
 
require_once("dbconnect.php");
 
 
//Проверяем, если существует переменная token в глобальном массиве GET
 
if(isset($_GET['token']) && !empty($_GET['token'])){
 
    $token = $_GET['token'];
 
}else{
 
    exit("<p><strong>Ошибка!</strong> Отсутствует проверочный код.</p>");
 
}
 
 
 
//Проверяем, если существует переменная email в глобальном массиве GET
 
if(isset($_GET['email']) && !empty($_GET['email'])){
 
    $email = $_GET['email'];
 
}else{
 
    exit("<p><strong>Ошибка!</strong> Отсутствует адрес электронной почты.</p>");
 
}
 
 
 
//Удаляем пользователей с таблицы users, которые не подтвердили свою почту в течении сутки
 
$query_delete_users = $mysqli->query("DELETE FROM `users` WHERE `email_status` = 0 AND `date_registration` < ( NOW() - INTERVAL 1 DAY )");
 
if(!$query_delete_users){
 
    exit("<p><strong>Ошибка!</strong> Сбой при удалении просроченного аккаунта. Код ошибки: ".$mysqli->errno."</p>");
 
}
 
 
//Удаляем пользователей из таблицы confirm_users, которые не подтвердили свою почту в течении сутки
 
$query_delete_confirm_users = $mysqli->query("DELETE FROM `confirm_users` WHERE `date_registration` < ( NOW() - INTERVAL 1 DAY)");
 
if(!$query_delete_confirm_users){
 
    exit("<p><strong>Ошибка!</strong> Сбой при удалении просроченного аккаунта(confirm). Код ошибки: ".$mysqli->errno."</p>");
 
}
 
 
 
//Делаем запрос на выборке токена из таблицы confirm_users
$query_select_user = $mysqli->query("SELECT `token` FROM `confirm_users` WHERE `email` = '".$email."'");
 
 
//Если ошибок в запросе нет
if(($row = $query_select_user->fetch_assoc()) != false){
 
 
    //Если такой пользователь существует
    if($query_select_user->num_rows == 1){
 
        //Проверяем совпадает ли token
        if($token == $row['token']){
 
            //Обновляем статус почтового адреса 
            $query_update_user = $mysqli->query("UPDATE `users` SET `email_status` = 1 WHERE `email` = '".$email."'");
 
            if(!$query_update_user){
 
                exit("<p><strong>Ошибка!</strong> Сбой при обновлении статуса пользователя. Код ошибки: ".$mysqli->errno."</p>");
 
            }else{
 
                //Удаляем данные пользователя из временной таблицы confirm_users
                $query_delete = $mysqli->query("DELETE FROM `confirm_users` WHERE `email` = '".$email."'");
 
                if(!$query_delete){
 
                    exit("<p><strong>Ошибка!</strong> Сбой при удалении данных пользователя из временной таблицы. Код ошибки: ".$mysqli->errno."</p>");
 
                }else{
 
                    //Подключение шапки
                    require_once("header.php");
 
                        //Выводим сообщение о том, что почта успешно подтверждена.
                        echo '<h1 class="success_message text_center">Почта успешно подтверждена!</h1>';
                        echo '<p class="text_center">Теперь Вы можете войти в свой аккаунт.</p>';
 
                }
 
                // Завершение запроса удаления данных из таблицы confirm_users  
                $query_delete->close();
            }
 
            // Завершение запроса обновления статуса почтового адреса 
            $query_update_user->close();
 
 
 
        }else{ //if($token == $row['token'])
            exit("<p><strong>Ошибка!</strong> Неправильный проверочный код.</p>");
        }
 
    }else{ //if($query_select_user->num_rows == 1)
        exit("<p><strong>Ошибка!</strong> Такой пользователь не зарегистрирован </p>");
    }
 
}else{ //if(($row = $query_select_user->fetch_assoc()) != false)
    //Иначе, если есть ошибки в запросе к БД
    exit("<p><strong>Ошибка!</strong> Сбой при выборе пользователя из БД. </p>");
}
 
 
// Завершение запроса выбора пользователя из таблицы users
$query_select_user->close();
 
//Закрываем подключение к БД
$mysqli->close();
 
?>
Миниатюры
Подтверждение почты  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2020, 16:30
Ответы с готовыми решениями:

php mail() и подтверждение о доставке
Не могу понять почему так. Пользуюсь стандартной функцией mail(). Прописываю в заголовках письма Return-Receipt-To:какой-то_адресс, но...

Подтверждение почты
Добрый день! Я сделал что при регистрации генерируется случайный набор символов, ну и отправляется естественно в виде ссылке на...

Подтверждение почты
Прошу помощи знающих, имеется код отправки писем на почту с ссылкой для подтверждения почты. $login = $_POST; $activ =...

1
Доброжелательный пушистик
 Аватар для upfly
92 / 55 / 35
Регистрация: 07.06.2012
Сообщений: 307
18.04.2020, 01:06
Система не понимает что за функция Close(); но от какого класса уже на скрине не видно.

P.S. почему-то мне кажется именно строка №125 с ошибкой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2020, 01:06
Помогаю со студенческими работами здесь

Подтверждение смены почты
Есть в профиле инпут с отображением имейла текущего. Хочу, чтобы при его изменение и отправки формы в этом поле оставался старый имейл,...

Подтверждение входа кодом из почты
Всем привет. Пытаюсь организовать двухфакторную аутентификацию, не могу найти готовых примеров, по аналогичному запросу выдает гугл...

Восстановление пароля/подтверждение почты
Добрый день. Установил Yii2 версию advanced. Там есть готовый сброс пароля. Авторизация и регистрация работает,но когда пытаюсь сбросить...

Подтверждение регистрации (отправка почты с токеном)
Всем привет, уже как видно из названия темы, речь пойдет о отправке письма. Нужна помощь в этой части. Есть такой код в контроллере...

подтверждение удаления
Доброго времени суток! Подскажите пож, каким образом на php можно реализовать подтверждение удаления данных из базы.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru