Я хочу выяснить, как я могу узнать, установлены ли новый пароль и дата, когда он был запрошен (0000-00-00 00:00:00), а затем отправлять электронные письма на основании этого.Однако я думаю, что мне нужно изменить свою логику, потому что, если она уже установлена, я не хочу, чтобы она продолжала массово отправлять электронные письма пользователю.Кроме того, я не уверен, что если они не получат письмо.
Любые идеи о том, что мне следует делать?
РЕДАКТИРОВАТЬ: Просто хотел добавить, что new_password_keyНЕ пароль для пользователя, чтобы войти в систему.На данный момент я собирался направить их на страницу по ссылке в электронном письме, где они могут ввести новый пароль.
if (!isset($user_data->new_password_key) && (!isset($user_data->new_password_requested)))
{
if ($this->kow_auth->forgot_password($this->input->post('username')))
{
$this->kow_auth->send_email('forgot_password', 'KOW Manager Forgot Password Email', $user_data);
echo json_encode(array('success' => 'yes', 'message' => 'A temporary password has been emailed to you!'));
}
else
{
}
}
else
{
echo json_encode(array('success' => 'yes', 'message' => 'Check your email for your temporary password!'));
}
РЕДАКТИРОВАТЬ 2:
Кажется, у меня просто есть некоторые проблемы с логикой, потому что что, если он переходит к оператору if if ($ready_sent_password) и по какой-то причине они его не получили.Тогда что?Или что, если itt переходит к if (! Strtotime ($ user_data-> new_password_requested) <= (time () - 172800)), что для меня звучит глупо, потому что зачем заставлять их ждать два дня, чтобы получить новый парольключ.</p>
function forgot_password_submit()
{
$this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
if (!$this->form_validation->run())
{
echo json_encode(array('error' => 'yes', 'message' => 'There was a problem submitting the form! Please refresh the window and try again!'));
return;
}
$user_data = $this->users->get_user_by_username($this->input->post('username'));
if ($user_data === NULL)
{
echo json_encode(array('error' => 'yes', 'message' => 'User does not exist in the database!'));
return;
}
$already_sent_password = (isset($user_data->new_password_key) && isset($user_data->new_password_requested));
if ($already_sent_password)
{
echo json_encode(array('success' => 'yes', 'message' => 'Check your email for your temporary password!'));
return;
}
if (!strtotime($user_data->new_password_requested) <= (time() - 172800))
{
echo json_encode(array('error' => 'yes', 'message' => 'You have to wait 2 days before a new temp password can be emailed!'));
}
else
{
if ($this->kow_auth->forgot_password($this->input->post('username')))
{
$this->kow_auth->send_email('forgot_password', 'KOW Manager Forgot Password Email', $user_data);
echo json_encode(array('error' => 'yes', 'message' => 'A temporary password has been emailed to you'));
}
else
{
echo json_encode(array('error' => 'yes', 'message' => 'A temporary password could not be created for you!'));
}
}