function loginMail() { $errMsg = ''; if (!isset($_GET['email'])) { $errMsg .= 'email'; } if (!isset($_GET['password'])) { if (strlen($errMsg) > 0) { $errMsg .= ', '; } $errMsg .= 'password'; } if (strlen($errMsg) > 0) { // At least one of the fields is not set, so return an error sendMessage(ERR, 'The following required parameters are not set: [' . $errMsg . ']'); return; } $email = $_GET['email']; $password = $_GET['password']; // Check if user exists $db = acquireDatabase(); $loader = new User($db); try { $res = $loader->loadWhere('email=?', [$email]); if (sizeof($res) > 0) { $user = $res[0]; // Check if password is correct $validPassword = $user->getPassword(); $password = User::encryptPassword($password); if ($validPassword == $password) { // Login successful -> return session id session_start(); $_SESSION['uid'] = $user->getId(); $_SESSION['email'] = $user->getEmail(); if ($user->getState() == 'FILL_DATA') { sendMessage(WARN, 'Login successful. Please complete your registration.'); } else { $_SESSION['name'] = $user->getName(); sendMessage(OK, 'Login successful.'); } } else { sendMessage(ERR, 'Password invalid.'); } } else { // User doesn't exist sendMessage(ERR, 'User invalid.'); } } catch (DbException $e) { sendMessage(ERR, $e->getMessage()); } $db->close(); }
// At least one of the fields is not set, so return an error sendMessage(ERR, 'The following required parameters are not set: [' . $errMsg . ']'); return; } $email = $_GET['email']; $password = $_GET['password']; // Check mail if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { sendMessage(ERR, 'The format of the given email is invalid: [' . $email . ']'); return; } // Check if the mail already exists $db = acquireDatabase(); $loader = new User($db); try { $res = $loader->loadWhere('email=?', [$email]); if (sizeof($res) > 0) { $db->close(); sendMessage(ERR, 'This email is already in use. Did you forget your password?'); return; } $user = new User($db); $user->setEmail($email); $user->setAndEncryptPassword($password); // $user->setState('CONF_MAIL'); $user->setState('FILLDATA'); // Next step is to fill the missing data like name $user->save(); session_start(); $user->reload(['email']); $_SESSION['uid'] = $user->getId();
public function testLoadWhere() { $user = new User(); $user->name = 'test ' . rand(); $user->description = ''; $user->save(); $users = User::loadWhere(['id' => [$user->id]]); $this->assertEquals($user, $users[0]); }