sasori
(Nemo Md5)
December 3, 2010, 9:49am
1
this is the error that am getting
and this is my code
$criteria = new CDbCriteria;
$criteria->select = 'WSEmailAddress';
$criteria->condition = 'WSMembershipSecretQuestion = :secret';
$criteria->condition = 'WSMembershipMySecretQuestion = :mysecret';
$criteria->condition = 'WSMembershipSecretAnswer = :answer';
$criteria->params = array(
':secret'=>$_POST['Wsmembers']['WSMembershipSecretQuestion'],
':mysecret'=>$_POST['Wsmembers']['WSMembershipMySecretQuestion'],
':answer'=>$_POST['Wsmembers']['WSMembershipSecretAnswer']
);
$email = Wsmembers::model()->find($criteria);
did i miss something ?
rudenich
(Rudenich)
December 3, 2010, 10:06am
2
$criteria->condition = 'WSMembershipSecretQuestion = :secret';
$criteria->condition = 'WSMembershipMySecretQuestion = :mysecret';
$criteria->condition = 'WSMembershipSecretAnswer = :answer';
actualy you set only one - last condition
to add some condition use function
addCondition
$criteria->condition = 'WSMembershipSecretQuestion = :secret';
$criteria->addCondition('WSMembershipMySecretQuestion = :mysecret');
$criteria->addCondition('WSMembershipSecretAnswer = :answer');
zaccaria
(Matteo Falsitta)
December 3, 2010, 10:09am
3
Yes, the 2 and third condition will rewrite the previous.
Use the method add condition:
$criteria = new CDbCriteria;
$criteria->select = 'WSEmailAddress';
$criteria->addCondition('WSMembershipSecretQuestion = :secret');
$criteria->addCondition('WSMembershipMySecretQuestion = :mysecret');
$criteria->addCondition('WSMembershipSecretAnswer = :answer');
$criteria->params = array(
':secret'=>$_POST['Wsmembers']['WSMembershipSecretQuestion'],
':mysecret'=>$_POST['Wsmembers']['WSMembershipMySecretQuestion'],
':answer'=>$_POST['Wsmembers']['WSMembershipSecretAnswer']
);
$email = Wsmembers::model()->find($criteria);
This should work.
Another point, is really really really really bad practice to use $_POST[‘Wsmembers’][‘WSMembershipSecretQuestion’], use instead a schema like the action admin:
$model= new Wsmembers;
$model->attributes=$_POST['Wsmembers'];
$email= $model->searchEmail();
And the code of searchemail like:
$criteria = new CDbCriteria;
$criteria->select = 'WSEmailAddress';
$criteria->addCondition('WSMembershipSecretQuestion = :secret');
$criteria->addCondition('WSMembershipMySecretQuestion = :mysecret');
$criteria->addCondition('WSMembershipSecretAnswer = :answer');
$criteria->params = array(
':secret'=>$this->WSMembershipSecretQuestion,
':mysecret'=>$this->WSMembershipMySecretQuestion,
':answer'=>$this->WSMembershipSecretAnswer
);
return Wsmembers::model()->find($criteria);
sasori
(Nemo Md5)
December 3, 2010, 10:17am
4
problem solved thanks to both of ya ( thanks for the security tip @zac )