Hey all ![]()
I have a registration form that extends CActiveRecord and is based on a user table. Validation is setup and working fine but I noticed in the code below that I cannot set $form->password to a value other than the one submitted on the form.
In this code, if the form validates, I'm trying to encrypt the password and assign it to $form->password, then save it to the database. With the $form->password line commented out, a new user record is added to the database in plain text (for testing). If I uncomment it (to store the encrypted password), the activation email goes out and the render occurs, but the insert to db silently fails.
I turned on logging with trace, etc., but I still can't see what's going on.
Any ideas?
public function actionRegistration()
{
$scriptSet = new ScriptSet;
$scriptSet->loadSet('mainRegistration', null, 'ie', 1);
$form = new User;
if(isset($_POST['User']))
{
$form->attributes=$_POST['User'];
if($form->validate())
{
$salt="<A Salt>"; //omitted
$string = "$salt" . $_POST['User']['password'];
$form->created = new CDbExpression('NOW()');
$form->modified = new CDbExpression('NOW()');
//$form->password = sha1($string);
$form->lastIp = $_SERVER['REMOTE_ADDR'];
$form->save();
// Send Activation email
...
// Render success
...
}
}
//Display initial registration page
...
}