Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Modificar action create en YII framework

Estas en el tema de Modificar action create en YII framework en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas tardes. Genere un crud de usuarios, con el generador de codigo gii de Yii framework. Funciona bien pero necesito que al crear el usuario ...
  #1 (permalink)  
Antiguo 06/11/2013, 15:19
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Modificar action create en YII framework

Buenas tardes.


Genere un crud de usuarios, con el generador de codigo gii de Yii framework.

Funciona bien pero necesito que al crear el usuario el password me quede encryptado. Actualmente el recibe los valores del formulario con esta linea

Código PHP:
$model->attributes=$_POST['Cities']; 
Como hago para decirle que el password lo guarde encryptado en la bd? hay algún método predefinido para hacerlo? debo enviar campo por campo a los atributos? como se haría?

graicas
  #2 (permalink)  
Antiguo 22/11/2013, 11:48
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 8 meses
Puntos: 52
Respuesta: Modificar action create en YII framework

Hay varias maneras, la mas facil y como lo estas haciendo, que no te la recomiendo (deja que algo haga eso por ti), es, despues de la linea que tienes, y antes del $model->save(); pon esto:

Código PHP:
Ver original
  1. $model->campoPassword = md5($model->campoPassword);
  2. // O
  3. $model->campoPassword = md5($_POST['Cities']['campoPassword']);

Otras opciones:

1. Con el lanzamiento de la version 1.1.14 de Yii, se agrego un password helper:

http://www.yiiframework.com/news/75/...4-is-released/

2. Si quieres una gestion de usuarios mas completa, te recomiendo Cruge:

http://yiiframeworkenespanol.org/wik...hp?title=Cruge
__________________
Aprendiendo!!!
  #3 (permalink)  
Antiguo 01/12/2014, 17:24
(Desactivado)
 
Fecha de Ingreso: enero-2013
Mensajes: 289
Antigüedad: 11 años, 9 meses
Puntos: 10
Respuesta: Modificar action create en YII framework

Cita:
Iniciado por anacona16 Ver Mensaje
Hay varias maneras, la mas facil y como lo estas haciendo, que no te la recomiendo (deja que algo haga eso por ti), es, despues de la linea que tienes, y antes del $model->save(); pon esto:

Código PHP:
Ver original
  1. $model->campoPassword = md5($model->campoPassword);
  2. // O
  3. $model->campoPassword = md5($_POST['Cities']['campoPassword']);

Otras opciones:

1. Con el lanzamiento de la version 1.1.14 de Yii, se agrego un password helper:

http://www.yiiframework.com/news/75/...4-is-released/

2. Si quieres una gestion de usuarios mas completa, te recomiendo Cruge:

http://yiiframeworkenespanol.org/wik...hp?title=Cruge
estoy de acuerdo contigo excepto con lo de usar md5. Existen alternativas mejores, por ejemplo Blowfish. Yiiframework usa la clase CPasswordHelper para implementar Blowfish. Según la documentación de Yii framework:

CPasswordHelper provides a simple API for secure password hashing and verification.
CPasswordHelper uses the Blowfish hash algorithm available in many PHP runtime
environments through the PHP {@link http://php.net/manual/en/function.crypt.php crypt()}
built-in function. As of Dec 2012 it is the strongest algorithm available in PHP
and the only algorithm without some security concerns surrounding it. For this reason,
CPasswordHelper fails to initialize when run in and environment that does not have
crypt() and its Blowfish option. Systems with the option include:
(1) Most *nix systems since PHP 4 (the algorithm is part of the library function crypt(3));
(2) All PHP systems since 5.3.0; (3) All PHP systems with the
{@link http://www.hardened-php.net/suhosin/ Suhosin patch}.
For more information about password hashing, crypt() and Blowfish, please read
the Yii Wiki article
{@link http://www.yiiframework.com/wiki/425...sword-storage/ Use crypt() for password storage}.
and the
PHP RFC {@link http://wiki.php.net/rfc/password_hash Adding simple password hashing API}.

CPasswordHelper throws an exception if the Blowfish hash algorithm is not
available in the runtime PHP's crypt() function. It can be used as follows

Generate a hash from a password:

$hash = CPasswordHelper::hashPassword($password);

This hash can be stored in a database (e.g. CHAR(64) CHARACTER SET latin1). The
hash is usually generated and saved to the database when the user enters a new password.
But it can also be useful to generate and save a hash after validating a user's
password in order to change the cost or refresh the salt.

To verify a password, fetch the user's saved hash from the database (into $hash) and:

if (CPasswordHelper::verifyPassword($password, $hash))
// password is good
else
// password is bad

Última edición por moginn; 07/12/2014 a las 18:24

Etiquetas: crud, form, framework, modificar, yii
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:00.