public function signupAction() { $form = new Application_Form_SignUp(); $request = $this->getRequest(); if ($request->isPost()) { if ($form->isValid($request->getPost())) { $data = $form->getValues(); $data['password'] = md5($data['password1']); // MD5 unset($data['password1']); unset($data['password2']); $data['hash'] = md5(rand(1, 1000)); $currencyMapper = new Application_Model_CurrencyMapper(); $currency = $currencyMapper->findByCode($data['currency_code']); if (!$currency->id) { $data['currency_id'] = $currencyMapper->getDefaultCurrency()->id; } else { $data['currency_id'] = $currency->id; } $user = new Application_Model_User($data); $userMapper = new Application_Model_UserMapper(); try { $userMapper->insert($user); $mailMapper = new Application_Model_MailsettingMapper(); $default_config_id = $mailMapper->getDefault(); $mailsetting = $mailMapper->getConfig($default_config_id); $obj = new My_Class_Cript(); $config = array('auth' => 'login', 'username' => $mailsetting->email, 'password' => $obj->decript($mailsetting->password), 'ssl' => $mailsetting->stype, 'port' => $mailsetting->port); $transport = new Zend_Mail_Transport_Smtp($mailsetting->host, $config); $mail = new Zend_Mail(); $message = "<p>\n Thanks for signing up!\n Your account has been created, activate your account by pressing the url below.\n </p>\n <p>-----------------------</p>\n <p><a href='http://" . SITE_NAME . "/auth/verify?email=" . $user->email . "&hash=" . $user->hash . "'>Click Here</a> to activate your account</p>"; $mail->setBodyHtml($message); $mail->setFrom('*****@*****.**', 'Products-Pilot'); $mail->addTo($data['email'], 'You'); $mail->setSubject('Account Validation'); if ($mail->send($transport)) { $this->_helper->getHelper('FlashMessenger')->addMessage('Your account has been made please verify it by clicking the activation link that has been send to your email.', 'info'); return $this->_helper->redirector('login'); } else { $userMapper->delete($user); } } catch (Exception $e) { $message = $e->getMessage(); if ($e instanceof Zend_Db_Statement_Mysqli_Exception) { if ($e->getCode() == 1062) { $message = 'This email is already registered'; } else { $message = 'Something goes wrong'; } } else { $userMapper->delete($user); $message = 'Mail service error: ' . $e->getMessage(); } $this->_helper->getHelper('FlashMessenger')->addMessage($message, 'error'); $this->_helper->redirector('signup'); } } else { foreach ($form->getMessages() as $error) { $this->_helper->getHelper('FlashMessenger')->addMessage(array_shift(array_values($error)), 'error'); $this->_helper->redirector('signup'); //var_dump(array_shift(array_values($error))); } } } $this->view->form = $form; }