$postVars = $app->request->post(); // Walidacja danych if (empty($postVars['email']) || empty($postVars['login']) || empty($postVars['password'])) { throw new Exception('Niekompletne dane.', 400); } $email = validateEmail($postVars['email']); $login = validateString('login', $postVars['login'], 6, 32); $password = validateString('hasło', $postVars['password'], 6, 32); // Losowy hash jako klucz aktywacyjny $secret = hash('sha512', rand() . time()); $subject = 'Aktywacja konta'; $message = 'Zarejestrowałeś/aś się w serwisie Wrocławska Mapa Barier. Aby aktywować swoje konto, wejdź ze swojej przeglądarki na adres ' . $config['website']['url'] . 'confirm/' . $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->register($email, $login, $password, $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('/confirm/:secret', function ($secret) use($app, $user) { try { // Walidacja danych