public function actionRegister() { $request = Yii::$app->request; $username = $request->post('username'); $email = $request->post('email'); $password = $request->post('password'); if (empty($username) or empty($email) or empty($password)) { $this->setHeader(400); echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Missing params'), JSON_PRETTY_PRINT); exit; } $db = Yii::$app->db; $projectName = $request->post('gbid'); if (!empty($projectName)) { $sql = "SELECT id FROM project WHERE name = :projectName"; $params = [':projectName' => $projectName]; $projectId = $db->createCommand($sql, $params)->queryScalar(); } if (empty($projectId)) { $projectId = 0; } if (strlen($password) < 6 or strlen($password) > 20) { $this->setHeader(400); echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Password length must in [6, 20]'), JSON_PRETTY_PRINT); exit; } $email = trim($email); $sql = "SELECT 1 FROM user WHERE email = :email"; $params = [':email' => $email]; $emailExist = $db->createCommand($sql, $params)->queryScalar(); if ($emailExist) { $this->setHeader(400); echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Email exists'), JSON_PRETTY_PRINT); exit; } $username = trim($username); $password = Util::hashPassword(trim($password)); $sql = "INSERT user (name, password, email, project_id) VALUES (:name, :password, :email, :projectId)"; $params = [':name' => $username, ':password' => $password, ':email' => $email, ':projectId' => $projectId]; $db->createCommand($sql, $params)->execute(); $sql = "SELECT id user_id, name user_name, project_id FROM user WHERE name = :name"; $params = [':name' => $username]; $data = $db->createCommand($sql, $params)->queryOne(); $this->setHeader(200); echo json_encode(array('status' => 1, 'data' => $data, 'message' => 'Register success'), JSON_PRETTY_PRINT); exit; }
public function actionRegister() { $request = Yii::$app->request; $password = $request->post('password'); $givenName = $request->post('givenName'); $familyName = $request->post('familyName'); $specialization = $request->post('specialization'); // $portfolio = $request->post('portfolio'); $email = $request->post('email'); $mobile = $request->post('mobile'); $code = $request->post('code'); if (empty($password) or empty($givenName) or empty($familyName) or empty($specialization) or empty($email) or empty($mobile) or empty($code)) { echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Missing params'), JSON_PRETTY_PRINT); exit; } $db = Yii::$app->db; $verify = Verify::find()->where(['mobile' => $mobile])->one(); if (empty($verify)) { echo json_encode(['status' => 0, 'message' => 'Wrong verify message'], JSON_PRETTY_PRINT); } if ($code != $verify->code) { echo json_encode(['status' => 0, 'message' => 'Wrong verify message'], JSON_PRETTY_PRINT); } if (strlen($password) < 6 or strlen($password) > 20) { $this->setHeader(400); echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Password length must in [6, 20]'), JSON_PRETTY_PRINT); exit; } $email = trim($email); $sql = "SELECT 1 FROM user WHERE email = :email"; $params = [':email' => $email]; $emailExist = $db->createCommand($sql, $params)->queryScalar(); if ($emailExist) { echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Email exists'), JSON_PRETTY_PRINT); exit; } $phoneExist = $db->createCommand("SELECT 1 FROM user WHERE mobile = :mobile", [':mobile' => $mobile])->queryScalar(); if ($phoneExist) { echo json_encode(array('status' => 0, 'error_code' => 400, 'message' => 'Mobile exists'), JSON_PRETTY_PRINT); exit; } $givenName = trim($givenName); $familyName = trim($familyName); $password = Util::hashPassword(trim($password)); $user = new User(); $user->password = $password; $user->given_name = $givenName; $user->family_name = $familyName; $user->specialization = $specialization; $user->email = $email; $user->mobile = $mobile; $user->is_verified = 1; $user->save(); echo json_encode(array('status' => 1, 'message' => 'Register success'), JSON_PRETTY_PRINT); exit; }