Обучение/Помощь новичкам | активация аккаунта
Тема закрыта by
SNEG


#15 прав, не нужен крон, время действия ссылки/кода обычно пару минут, ну максимум минут 10. Проверять актуальность ссылки: время создания записи + 5 минут(условно) > текущее время
$x = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `id`, `created_at` FROM `".DB_PREFIX."_users_act_temp` WHERE `act_code` = '".intval($_POST['act_code'])."'"));
if(!isset($x['id']) || date('Y-m-d H:i:s') >= date('Y-m-d H:i:s', strtotime($x['created_at']. '+1 hour')))
$err[] = 'время итсекло или код активции был удалён';
else
{
// активируем аккаунт и удаляем все сущесвующие записи в бд для даннного юзера по активаиции
}
________
посл. ред. 05.04.2025 в 16:42; всего 12 раз(а); by SNEG

Тепеь вопрос в другом , как удалять записи если которы исктекли и аккаунт был не актвирован, просто зарегистрировался и забил , ушёл , запись осталась в базе навсегда
$x = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `id`, `created_at` FROM `".DB_PREFIX."_users_act_temp` WHERE `act_code` = '".intval($_POST['act_code'])."'"));
if(!isset($x['id']) || date('Y-m-d H:i:s') >= date('Y-m-d H:i:s', strtotime($x['created_at']. '+1 hour')))
$err[] = 'время итсекло или код активции был удалён';
else
{
// активируем аккаунт и удаляем все сущесвующие записи в бд для даннного юзера по активаиции
}
Условие
date('Y-m-d H:i:s') >= date('Y-m-d H:i:s', strtotime($x['created_at']. '+1 hour'))
может не пахать, если у тебя переменная$x['created_at']
с неверным форматом или нулеваяПеред вызовом mysqli_fetch_assoc(), надо проверять на результат запроса....
По твоему вопросу тему читал лениво, в общем, ставишь на крон SQL запрос
DELETE FROM `Имя таблицы где хранится время с регистрации`
WHERE `строка с временем регистрации` < NOW() - INTERVAL 30 DAY;
и будет тебе счастье.
Если нужна разжеванная информация и готовый настроенный пример, то велком в биржу ну или в лс, за $ можно из говна конфету сверстать

________
посл. ред. 05.04.2025 в 17:38; всего 8 раз(а); by NESCOKE
Вообще, есть несколько вариантов решения вопроса
1. Автоматический.
Если ты хочешь, что бы пользователь удалялся без твоего вмешательства, то нужен естественно крон, потому что он будет выполнять действия удаления, если человек зашел, аккаунт не активировал и больше не заходил
2. Ручной.
Можешь самостоятельно руками удалять не активированные аккаунты с помощью такого же запроса к бд, только его нужно немного изменить,
3. Ленивый
Если чел зашел первый раз, аккаунт не активировал и потом через неделю зашел еще раз, то этот аккаунт с его вторым входом удаляется и предлагается создать аккаунт заново или пойти лесом, тут уже нужно будет написать небольшой кусок когда
Но, если ты все таки хочешь автоматический вариант, то крон тебе нужен, я бы даже сказал без него было бы глупо это делать
1. Автоматический.
Если ты хочешь, что бы пользователь удалялся без твоего вмешательства, то нужен естественно крон, потому что он будет выполнять действия удаления, если человек зашел, аккаунт не активировал и больше не заходил
2. Ручной.
Можешь самостоятельно руками удалять не активированные аккаунты с помощью такого же запроса к бд, только его нужно немного изменить,
3. Ленивый
Если чел зашел первый раз, аккаунт не активировал и потом через неделю зашел еще раз, то этот аккаунт с его вторым входом удаляется и предлагается создать аккаунт заново или пойти лесом, тут уже нужно будет написать небольшой кусок когда
Но, если ты все таки хочешь автоматический вариант, то крон тебе нужен, я бы даже сказал без него было бы глупо это делать
А по поводу ненужности в кроне, тебе говорят о хранении жизни ссылки активации, он там действительно не нужен, время можно хранить по разному
а вот удаление аккаунтов у которых истек срок без активации, без крона автоматическим не сделать
а вот удаление аккаунтов у которых истек срок без активации, без крона автоматическим не сделать