でユーザー登録用のサインアップページとログインページという名前のページを作成しましAgiletoolkit
たmysql
。Agiletoolkit
登録中にサインアップページのフレームワークに電子メールが存在するかどうかを確認するにはどうすればよいですか? 私はこのコードで試しました
class page_signup extends Page {
function init(){
parent::init();
if($this->api->auth->isLoggedIn())$this->api->redirect('video');
//$user_role_list=array(' ',1=>'Admin',2=>'Moder',3=>'User');
$user_role_list=array(1=>'Admin',2=>'Moder',3=>'User');
$model=$this->add('Model_Customer');
$model->addField('password')->type('password')->mandatory(true);
$form = $this->add('MVCForm');
$form->setModel($model);
//$form->getElement('email')->validateNotNull()->validateField('filter_var($this->get(), FILTER_VALIDATE_EMAIL)');
$form->getElement('email')->validateNotNull()->validateField('filter_var($this->get(), FILTER_VALIDATE_EMAIL)');
$form->addField('password','confirm_password');
//$form->addField('dropdown','user role')->setValueList($user_role_list)->validateNotNull('Please Select User Role');
//$form->addField('dropdown','user role')->setValueList($user_role_list)->validateNotNull();
//$form->addField('dropdown','user role')->setValueList($user_role_list)->validateField('$this->get()==" "','Please select any one');
$form->addField('dropdown','user role')->setValueList($user_role_list);
$form->addSubmit();
$form->onSubmit(function($form){
//try{
/* */
$exist = $this->api->db->dsql()
->table('customer')
->field('count(*)') // I guess it can be written as ->count() too
->where('email',$model['email'])
->do_getOne();
if($exist[0]) {
throw $this->exception('Email year for this grant already exists')
->setField('email');
}
/* */
if($form->get('password') != $form->get('confirm_password'))
throw $form->exception('Passwords do not match')->setField('confirm_password');
$form->set('password',
$form->api->auth->encryptPassword($form->get('password'),$form->get('email')));
$form->update();
//$form->js()->hide('slow')->univ()->successMessage('Registered successfully')->execute();
$location = $_SERVER['PHP_SELF'];
$form->js()->hide('slow')->univ()->location($location)->successMessage('Registered successfully')->execute();
//$form->js()->univ()->dialogOK('Success','Registration is successful',$form->js()->_enclose()->univ()->location('/'))->execute();
/*}catch(Exception $e){
$form->js()->univ()->alert('Failed to add record')->execute();
}*/
});
}
}
正常に動作していません。別のユーザーが同じメールをメール テキスト ボックスに入力すると、myemail(dynamic) is already existing のようにエラー/アラートが表示されます。
別の質問は、ドロップダウン メニュー (ユーザー ロールなど) を検証する方法と、データベース テーブル (顧客テーブル) にユーザー ロール フィールド値を挿入する方法です。