try { // Walidacja danych $postVars = $app->request->post(); // Walidacja danych if (empty($postVars['email'])) { throw new Exception('Niekompletne dane.', 400); } $email = validateEmail($postVars['email']); // Losowy hash jako klucz aktywacyjny $secret = hash('sha512', rand() . time()); $subject = 'Zapomniane hasło'; $message = 'Aby rozpocząć procedurę zmiany hasła, wejdź ze swojej przeglądarki na adres ' . $config['website']['url'] . 'lostpassword/' . $secret; $headers = 'From: admin@bariery.wroclaw.pl' . "\r\n" . 'Reply-To: no-reply@bariery.wroclaw.pl' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); $user->beginTransaction(); // Rejestracja użytkownika w bazie danych $result = $user->lost_password($email, $secret); // Wysłanie e-maila z klucz aktywacyjnym if (mail($email, $subject, $message, $headers)) { $user->commit(); } else { throw new Exception('Nie można wysłać e-maila na podany adres.', 500); } jsonSuccess($app, $result); } catch (Exception $e) { $user->rollBack(); jsonError($app, $e); } }); $app->get('/lostpassword/:secret', function ($secret) use($app, $user) { try { // Walidacja danych