Form Cambio Password

Ciao a tutti,

ho realizzato un form per il cambio password.

Questa è l’action nel controller:




	public function actionChange_password()

	{

		$model=$this->loadModel(Yii::app()->user->getId());

		

		if (isset($_POST['User']))

		{

			echo md5($_POST['User']['old_password']) == $model->password;

			if (md5($_POST['User']['old_password']) == $model->password)

			{

				$model->password = $_POST['User']['new_password'];

				// DEBUG

                                echo "Nuova pass".$model->password;

				$model->save();

			}

		}

		$this->render('change_password',array('model'=>$model));

	}



Riesco a stampare la nuova password,

però dopo che esegue $model->save()

mi ritrovo nel database il campo password vuoto.

Cosa è che si perde in save?

Grazie in anticipo

Questa riga


$model->password = $_POST['User']['new_password'];

non dovrebbe essere


$model->password = md5($_POST['User']['new_password']);

E’ indifferente, il problema è che il save non và.

Ho letto in giro che devo applicare uno "scenario".

Ho risolto aggiungendo




$model->setScenario('change_password');



Ma non so spiegarvi il perchè :rolleyes: :rolleyes: :rolleyes:

perchè hai seguito qualche guida/wiki, che ti fa validare new_password tramite scenario.

Io non ho definito nessuna regola di validazione, l’ho implementato per prova ed ha funzionato :blink: