Проблема с активацией почты

152
12 сентября 2019, 00:40

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

Not Found
The requested URL /activation/6efb67bfedc38467d2d10200a98b19e2 was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Вот код файла с активацией:

<?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>';
                    //Подключение подвала
                    require_once("footer.php");
                }
                // Завершение запроса удаления данных из таблицы 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();
?>
READ ALSO
Убрать хешбанг (#!) с URL

Убрать хешбанг (#!) с URL

Есть сайт, нужно сделать редирект со всех его страниц на главную страницу другого сайтаЭтого я легко добился с помощью редиректа в

138
Вывод комментариев из базы данных WordPress

Вывод комментариев из базы данных WordPress

У меня есть сайт на WP, на нем есть нужная страница на которой нужно сделать вывод всех комментариев с базы данных WP,решил делать вывод из бд на php (редактор...

119
как отправить json запрос в slim&#39;е

как отправить json запрос в slim'е

Есть рабочий запрос к api:

124
Блокировки данных в InnoDB

Блокировки данных в InnoDB

Есть 2 таблицы: пользователи (user) и телефоны (phone)При добавлении нового пользователя (ввод номера телефона) проверяется, нет ли такого номера...

154