コード例 #1
0
 function actionPerform(&$skin, $moduleID)
 {
     $usernameError = '';
     if (isset($_POST["event"]) && $_POST["event"] == 'forgetPassword') {
         //Check username
         //Inorder to avoid sql injection attacks both
         //should contains characters form a to z and/or numbers only
         if (isset($_POST["username"]) && (!$skin->main->checkString('[^a-zA-Z0-9]', $_POST["username"]) || $_POST["username"] == "")) {
             $usernameError = "Username must contains numbers and/or character from a to z only";
         } else {
             $query = "SELECT * FROM {$skin->main->databaseTablePrefix}users WHERE username="******"username"]);
             $recordSet = $skin->main->databaseConnection->Execute($query);
             $password = $this->randomNumber();
             $record = array('password' => md5($password));
             //Start Update Transaction
             $skin->main->databaseConnection->StartTrans();
             $updateSQL = $skin->main->databaseConnection->GetUpdateSQL($recordSet, $record);
             $skin->main->databaseConnection->Execute($updateSQL);
             $recordSet2 = $skin->main->databaseConnection->Execute("SELECT * FROM {$skin->main->databaseTablePrefix}templates \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype='mail'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname = 'forgetPasswordSubject'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOR\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname = 'forgetPasswordBody'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)");
             $templates = array('forgetPasswordSubject' => '', 'forgetPasswordBody' => '');
             while (!$recordSet2->EOF) {
                 $templates[$recordSet2->fields["name"]] = $recordSet2->fields["content"];
                 $recordSet2->MoveNext();
             }
             $mailer = new Mailer($skin->main);
             $mailTemplate = new MailTemplate($skin->main);
             $mailTemplate->assign('username', $_POST["username"]);
             $mailTemplate->assign('password', $password);
             $mailer->addUserAddress($_POST["username"]);
             $mailer->Subject = $mailTemplate->fetch('mail/forgetPasswordSubject');
             $mailer->Body = $mailTemplate->fetch('mail/forgetPasswordBody');
             $mailer->Send();
             if ($mailer->ErrorInfo) {
                 //Transaction failed
                 $skin->main->databaseConnection->FailTrans();
                 trigger_error("Unable to send password remind mail. Reason is : " . $mailer->ErrorInfo);
             }
             //Complete update transaction
             $skin->main->databaseConnection->CompleteTrans();
         }
     }
     //Assign codeBehind variables
     $skin->main->controlVariables["forgetPassword"] = array('usernameError' => $usernameError);
 }
コード例 #2
0
 function actionPerform($eventName, $args)
 {
     $mailer = new Mailer($this->main);
     $mailTemplate = new MailTemplate($this->main);
     $mailTemplate->assign('username', $args);
     $mailer->addSystemAddress();
     if ($eventName == "login_fail") {
         $mailer->Subject = $mailTemplate->fetch('event/loginFailSubject');
         $mailer->Body = $mailTemplate->fetch('event/loginFaildBody');
         $mailer->Send();
     } elseif ($eventName == "login_succeed") {
         $mailer->Subject = $mailTemplate->fetch('event/loginSucceedSubject');
         $mailer->Body = $mailTemplate->fetch('event/loginSucceedBody');
         $mailer->Send();
     } elseif ($eventName == "user_activate") {
         $mailer->Subject = $mailTemplate->fetch('event/userActivateSubject_Admin');
         $mailer->Body = $mailTemplate->fetch('event/userActivateBody_Admin');
         $mailer->Send();
     } elseif ($eventName == "user_deactivate") {
         $mailer->Subject = $mailTemplate->fetch('event/userDeactivateSubject_Admin');
         $mailer->Body = $mailTemplate->fetch('event/userDeactivateBody_Admin');
         $mailer->Send();
     }
 }