public function actionResetpass() { //Instancia para validar el formulario $model = new FormResetPass(); //Mensaje que será mostrado al usuario $msg = null; //Abrimos la sesión $session = new Session(); $session->open(); //Si no existen las variables de sesión requeridas lo expulsamos a la página de inicio if (empty($session["recover"]) || empty($session["id_recover"])) { return $this->redirect(["site/index"]); } else { $recover = $session["recover"]; //El valor de esta variable de sesión la cargamos en el campo recover del formulario $model->recover = $recover; //Esta variable contiene el id del usuario que solicitó restablecer el password //La utilizaremos para realizar la consulta a la tabla users $id_recover = $session["id_recover"]; } //Si el formulario es enviado para resetear el password if ($model->load(Yii::$app->request->post())) { if ($model->validate()) { //Si el valor de la variable de sesión recover es correcta if ($recover == $model->recover) { //Preparamos la consulta para resetear el password, requerimos el email, el id //del usuario que fue guardado en una variable de session y el código de verificación //que fue enviado en el correo al usuario y que fue guardado en el registro $table = Users::findOne(["email" => $model->email, "id" => $id_recover, "verification_code" => $model->verification_code]); //Encriptar el password $table->password = crypt($model->password, Yii::$app->params["salt"]); //Si la actualización se lleva a cabo correctamente if ($table->save()) { //Destruir las variables de sesión $session->destroy(); //Vaciar los campos del formulario $model->email = null; $model->password = null; $model->password_repeat = null; $model->recover = null; $model->verification_code = null; $msg = "Enhorabuena, password reseteado correctamente, redireccionando a la página de login ..."; $msg .= "<meta http-equiv='refresh' content='5; " . Url::toRoute("site/login") . "'>"; } else { $msg = "Ha ocurrido un error"; } } else { $model->getErrors(); } } } return $this->render("resetpass", ["model" => $model, "msg" => $msg]); }
public function actionMylogout() { $session = new Session(); $session->open(); $session->destroy(); $this->redirect('index.php?r=loginregister/default/login'); }
public function actionDestroy() { $session = new Session(); $session->open(); $session->destroy(); }
public function destroy() { Yii::$app->response->cookies->add(new \yii\web\Cookie(['name' => 'OLDSESSID', 'value' => ''])); parent::destroy(); }