Exemplo n.º 1
0
 public function actionClaim()
 {
     $this->layout = "home";
     $model = new Users();
     //Check if user has entered the email id or not
     if (isset($_POST['email'])) {
         $_SESSION['claimEmailVal'] = $_POST['email'];
         $_SESSION['claimUniqueCodeVal'] = $_POST['unique_code'];
         $user = Users::model()->findByAttributes(array('email' => $_POST['email']));
         $codeVal = Codes::model()->findByAttributes(array('uniquecode' => $_POST['unique_code']));
         if (!$user) {
             Yii::app()->user->setFlash('email', 'Please enter a registered email address');
         } else {
             if (!$codeVal) {
                 Yii::app()->user->setFlash('failmessage', 'Please try your unique code again');
             } elseif ($codeVal->status == 0) {
                 //updating Codes table for status and other values
                 $updateCodes = Yii::app()->db->createCommand()->update('codes', array('status' => 1, 'date_claimed' => date('Y-m-d H:i:s'), 'claimed_by' => $user['id']), 'uniquecode=:uniquecode', array(':uniquecode' => $codeVal->uniquecode));
                 //updating User table for status
                 $updateUsers = Yii::app()->db->createCommand()->update('users', array('status' => 'Claimed'), 'id=:id', array(':id' => $user->id));
                 //for sending email to users who successfully claims
                 $userFname = $user->first_name;
                 $userEmail = $user->email;
                 $message = new YiiMailMessage();
                 //this points to the file claim.php inside the view path
                 $message->view = "claim";
                 $params = array('name' => $userFname);
                 $message->subject = 'Congratulations';
                 $message->setBody($params, 'text/html');
                 $message->addTo($userEmail);
                 $message->from = '*****@*****.**';
                 Yii::app()->mail->send($message);
                 //for sending email to users who successfully claims ends here
                 session_destroy();
                 session_start();
                 $_SESSION['claimed'] = 'success';
                 $this->redirect(array('success'));
                 //$this->redirect(array('failure'));
             } elseif ($codeVal->status == 1) {
                 session_destroy();
                 session_start();
                 $_SESSION['claimed'] = 'failure';
                 $this->redirect(array('failure'));
             } else {
                 $this->redirect(array('success'));
             }
         }
     }
     $this->render('claim', array('model' => $model));
 }