Example #1
0
 /**
  * 	A felhasználó képét tölti fel a szerverre, és készít egy kisebb méretű képet is.
  *
  * 	Ez a metódus kettő XHR kérést dolgoz fel.
  * 	Meghívásakor kap egy id nevű paramétert melynek értékei upload vagy crop
  * 		upload paraméterrel meghívva: feltölti a kiválasztott képet
  * 		crop paraméterrel meghívva: megvágja az eredeti képet és feltölti	
  */
 public function client_img_upload()
 {
     if ($this->request->is_ajax()) {
         // feltöltés helye
         $upload_path = Config::get('clientphoto.upload_path');
         if ($this->request->has_params('upload')) {
             //képkezelő objektum létrehozása (a kép a szerveren a tmp könyvtárba kerül)
             $image = new Uploader($this->request->getFiles('img'));
             $tempfilename = 'temp_' . uniqid();
             $width = Config::get('clientphoto.width', 150);
             $image->allowed(array('image/*'));
             $image->resize($width, null);
             $image->save($upload_path, $tempfilename);
             if ($image->checkError()) {
                 $this->response->json(array("status" => 'error', "message" => $image->getError()));
             } else {
                 $this->response->json(array("status" => 'success', "url" => $upload_path . $image->getDest('filename'), "width" => $image->getDest('width'), "height" => $image->getDest('height')));
             }
         } else {
             if ($this->request->has_params('crop')) {
                 // a croppic js küldi ezeket a POST adatokat
                 $imgUrl = $this->request->get_post('imgUrl');
                 // original sizes
                 $imgInitW = $this->request->get_post('imgInitW');
                 $imgInitH = $this->request->get_post('imgInitH');
                 // resized sizes
                 //kerekítjük az értéket, mert lebegőpotos számot is kaphatunk és ez hibát okozna a kép generálásakor
                 $imgW = round($this->request->get_post('imgW'));
                 $imgH = round($this->request->get_post('imgH'));
                 // offsets
                 // megadja, hogy mennyit kell vágni a kép felső oldalából
                 $top_crop = $this->request->get_post('imgY1');
                 // megadja, hogy mennyit kell vágni a kép bal oldalából
                 $left_crop = $this->request->get_post('imgX1');
                 // crop box
                 $cropW = $this->request->get_post('cropW');
                 $cropH = $this->request->get_post('cropH');
                 // rotation angle
                 //$angle = $this->request->get_post('rotation'];
                 //a $right_crop megadja, hogy mennyit kell vágni a kép jobb oldalából
                 $right_crop = $imgW - $left_crop - $cropW;
                 //a $bottom_crop megadja, hogy mennyit kell vágni a kép aljából
                 $bottom_crop = $imgH - $top_crop - $cropH;
                 //képkezelő objektum létrehozása (a feltöltött kép elérése a paraméter)
                 $image = new Uploader($imgUrl);
                 $newfilename = 'client_' . md5(uniqid());
                 $image->resize($imgW, null);
                 $image->crop(array($top_crop, $right_crop, $bottom_crop, $left_crop));
                 $image->save($upload_path, $newfilename);
                 if ($image->checkError()) {
                     $this->response->json(array("status" => 'error', "message" => $image->getError()));
                 } else {
                     // temp kép törlése
                     DI::get('file_helper')->delete($imgUrl);
                     $this->response->json(array("status" => 'success', "url" => $upload_path . $image->getDest('filename')));
                 }
             }
         }
     }
     //is_ajax
 }
Example #2
0
 /**
  * Kép feltöltés
  */
 private function _uploadPicture($files_array)
 {
     $upload_path = Config::get('blogphoto.upload_path');
     $width = Config::get('blogphoto.width', 600);
     $height = Config::get('blogphoto.height', 400);
     $image = new Uploader($files_array);
     // új filenév
     $newfilename = 'blog_' . md5(uniqid());
     // nagy kép
     $image->allowed(array('image/*'));
     $image->cropToSize($width, $height);
     $image->save($upload_path, $newfilename);
     $filename = $image->getDest('filename');
     if ($image->checkError()) {
         Message::set('error', $image->getError());
         return false;
     } else {
         // nézőkép
         $thumb_width = Config::get('blogphoto.thumb_width', 150);
         $thumb_height = $image->calcHeight($thumb_width);
         $image->cropToSize($thumb_width, $thumb_height);
         $image->save($upload_path, $newfilename . '_thumb');
     }
     $image->cleanTemp();
     // kép neve
     return $filename;
 }
Example #3
0
 /**
  * sends an email to the provided email address
  *
  * @param string    $user_name                  felhasznalo neve
  * @param int       $user_id                    user's id
  * @param string    $user_email                 user's email
  * @param string    $user_activation_hash       user's mail verification hash string
  * @return boolean
  */
 private function _sendVerificationEmail($user_name, $user_id, $user_email, $user_activation_hash)
 {
     // Email kezelő osztály behívása
     include LIBS . '/simple_mail_class.php';
     $subject = Config::get('email.verification.subject');
     $link = Config::get('email.verification.link');
     $html = '<html><body><h3>Kedves ' . $user_name . '!</h3><p>A ' . $user_email . ' e-mail címmel regisztráltál a ---. Regisztrációd megtörtént, de jelenleg passzív.</p><a href="' . BASE_URL . 'regisztracio/' . $user_id . '/' . $user_activation_hash . '">' . $link . '</a><p>Az aktiválást követően a ----- oldalára jutsz, ahol bejelentkezhetsz a felhasználó neveddel és jelszavaddal. Annak érdekében, hogy segíthessünk a számodra leginkább megfelelő munka megtalálásában, töltsd ki a felhasználói profilodat. </p><p>Üdvözlettel:<br>A Multijob Diákszövetkezet csapata</p></body></html>';
     $from_email = Config::get('email.from_email');
     $from_name = Config::get('email.from_name');
     // Létrehozzuk a SimpleMail objektumot
     $mail = new \System\Libs\SimpleMail();
     $mail->setTo($user_email, $user_name)->setSubject($subject)->setFrom($from_email, $from_name)->addMailHeader('Reply-To', '*****@*****.**', 'Mail Bot')->addGenericHeader('MIME-Version', '1.0')->addGenericHeader('Content-Type', 'text/html; charset="utf-8"')->addGenericHeader('X-Mailer', 'PHP/' . phpversion())->setMessage($html)->setWrap(78);
     // final sending and check
     if ($mail->send()) {
         return true;
     } else {
         return false;
     }
 }
Example #4
0
			$settings = Config::get('db');
			try {
				$connect = new \PDO('mysql:host=' . $settings['host'] . ';dbname=' . $settings['name'] . ';charset=utf8', $settings['user'], $settings['pass']);
				if(ENV == 'development'){
					$connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
				}
			}
			catch(\PDOException $e) {
				die('Database error: ' . $e->getMessage());
			}

			return $connect;
		});
*/
DI::set('uri', function () {
    return new \System\Libs\Uri(Config::get('language_default'), Config::get('allowed_languages'));
});
DI::set('router', function () {
    return new \System\Libs\Router();
});
DI::set('request', function ($c) {
    return new \System\Libs\Request($c['uri'], $c['router']);
});
DI::set('response', function () {
    return new \System\Libs\Response();
});
DI::set('auth', function () {
    return new \System\Libs\Auth();
});
// helpers ---------------
DI::set('file_helper', function () {
 /**
  * Kép feltöltés
  * @param array $files_array - $_FILES['valami']
  * @return string
  */
 private function _uploadImage($files_array)
 {
     $upload_path = Config::get('photogallery.upload_path');
     $photo_width = Config::get('photogallery.width', 800);
     $photo_height = Config::get('photogallery.height', 600);
     $image = new Uploader($files_array);
     $newfilename = md5(uniqid());
     $image->allowed(array('image/*'));
     $image->cropToSize($photo_width, $photo_height);
     $image->save($upload_path, $newfilename);
     $dest_filename = $image->getDest('filename');
     if ($image->checkError()) {
         Message::set('error', $image->getError());
         return false;
     } else {
         $thumb_width = Config::get('photogallery.thumb_width', 320);
         $thumb_height = Config::get('photogallery.thumb_height', 240);
         $image->cropToSize($thumb_width, $thumb_height);
         $image->save($upload_path, $newfilename . '_thumb');
     }
     // visszatér a kép nevével
     return $dest_filename;
 }
Example #6
0
 /**
  * Adat visszaadása a config-ból
  * @param string $key
  * @param mixed $default
  */
 public function getConfig($key, $default = null)
 {
     return Config::get($key, $default);
 }
Example #7
0
 /**
  * Felhasználó bejelentkezése
  *
  * @param string $username_or_email
  * @param string $password
  * @param bool $rememberme
  * @return bool
  */
 public function login($username_or_email, $password, $rememberme = false)
 {
     // beviteli mezők validálás
     if (empty($username_or_email)) {
         $this->setError('username_field_empty');
         return false;
     }
     if (empty($password)) {
         $this->setError('password_field_empty');
         return false;
     }
     // user adatainak lekérdezése
     $this->user = $this->getUserData($username_or_email);
     // ha nincs ilyen user
     if (!$this->user) {
         $this->setError('login_failed');
         return false;
     }
     // block login attempt if somebody has already failed 3 times and the last login attempt is less than 30sec ago
     if ($this->user->failed_logins >= 3 and $this->user->last_failed_login > time() - 30) {
         $this->setError('password_wrong_3_times');
         return false;
     }
     // ha hibás a jelszó
     if (!$this->_verifyPassword($password, $this->user->password_hash)) {
         $this->_registerFailedLogin($username_or_email);
         return false;
     }
     // a user_active mező értékének vizsgálata
     if (!$this->_isActive($this->user->active)) {
         $this->setError('Az ön belépési engedélye fel van függesztve!');
         return false;
     }
     // user login adatok eltárolása session-ben
     $user_data = array('id' => $this->user->id, 'name' => $this->user->name, 'email' => $this->user->email, 'role_id' => $this->user->role_id, 'photo' => $this->user->photo, 'provider_type' => $this->user->provider_type);
     Session::init();
     Session::set(self::$logged_in, true);
     Session::set(self::$last_activity, time());
     // bejelentkezés, illetve utolsó aktivitás ideje
     Session::set('user_data', $user_data);
     // adatok a pdo objektum execute metódusának
     $data = array();
     // Ha a flhasználó bejelölte a "remember me" checkbox-ot, akkor létrehozunk egy cookie-t
     if ($rememberme) {
         // generálunk egy 64 karakter hosszú string-et
         $random_token_string = hash('sha256', mt_rand());
         // adat a pdo objektum execute metódusának
         $data[':rememberme_token'] = $random_token_string;
         // generate cookie string that consists of user id, random string and combined hash of both
         $cookie_string_first_part = $this->user->id . ':' . $random_token_string;
         $cookie_string_hash = hash('sha256', $cookie_string_first_part);
         $cookie_string = $cookie_string_first_part . ':' . $cookie_string_hash;
         // cookie beállítása
         setcookie('rememberme', $cookie_string, time() + Config::get('cookie.runtime'), '/');
         // setcookie('rememberme', $cookie_string, time() + Config::get('cookie.runtime'), "/", Config::get('cookie.domain'));
     }
     // generate integer-timestamp for saving of last-login date
     $last_login_timestamp = time();
     // adatok a pdo objektum execute metódusának
     $data[':last_login_timestamp'] = $last_login_timestamp;
     $data[':id'] = $this->user->id;
     // sikeres bejelentkezés esetén adatok rögzítése az adatbázisban
     $this->_registerSuccessLogin($data, $rememberme);
     return true;
 }
Example #8
0
 /**
  *  Slide képet méretezi és tölti fel a szerverre (thumb képet is)
  *  (ez a metódus az update_slide() és add_slide() metódusokban hívódik meg!)
  *
  *  @param  array $files_array - $_FILES['valami']
  *  @return string (kép elérési útja) vagy false
  */
 private function _uploadPicture($files_array)
 {
     // feltöltés helye
     $upload_path = Config::get('slider.upload_path');
     $width = Config::get('slider.width', 1170);
     $height = Config::get('slider.height', 420);
     //képkezelő objektum létrehozása (a kép a szerveren a tmp könyvtárba kerül)
     $image = new \System\Libs\Uploader($files_array);
     $filename = 'slide_' . md5(uniqid());
     $image->cropToSize($width, $height);
     $image->allowed(array('image/*'));
     $image->save($upload_path, $filename);
     $dest_image = $image->getDest('filename');
     if ($image->checkError()) {
         Message::set('error', $image->getError());
         return false;
     } else {
         // nézőkép
         $thumb_width = Config::get('slider.thumb_width', 200);
         $thumb_height = Config::get('slider.thumb_height', 72);
         $image->cropToSize($thumb_width, $thumb_height);
         $image->save($upload_path, $filename . '_thumb');
     }
     $image->cleanTemp();
     // ha nincs hiba visszadja a feltöltött kép nevét
     return $dest_image;
 }
Example #9
0
    /**
     *	Új jelszó küldése a felhasználónak (elfelejtett jelszó esetén)
     *  - lekérdezi, hogy van-e a $_POST-ban kapott email címmel rendelkező felhasználó
     *  - generál egy 8 karakter hosszú jelszót és egy new_password_hash-t
     *  - az új password hash-t az adatbázisba írja
     *  - elküldi email-ben az új jelszót a felhasználónak
     *  - ha az email küldése sikertelen, visszaírja az adatbázisba a régi password hash-t
     */
    public function forgottenpw_AJAX()
    {
        if ($this->request->is_ajax()) {
            // a felhasználó email címe, amire küldjük az új jelszót
            $to_email = $this->request->get_post('user_email');
            // lekérdezzük, hogy ehhez az email címhez tartozik-e user (lekérdezzük a nevet, és a password hash-t)
            $result = $this->user_model->getPasswordHash($to_email);
            // ha nincsen ilyen e-mail címmel regisztrált felhasználó
            if (empty($result)) {
                $message = array('status' => 'error', 'message' => 'Nincsen ilyen e-mail címmel regisztrált felhasználó!');
                echo json_encode($message);
                exit;
            }
            $to_name = $result[0]['name'];
            $old_pw = $result[0]['password_hash'];
            // 8 karakter hosszú új jelszó generálása (str_shuffle összekeveri a stringet, substr levágja az első 8 karaktert)
            $new_password = substr(str_shuffle('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), 0, 8);
            $hash_cost_factor = Config::get('hash_cost_factor') !== null ? Config::get('hash_cost_factor') : null;
            $new_password_hash = password_hash($new_password, PASSWORD_DEFAULT, array('cost' => $hash_cost_factor));
            // új jelszó hash beírása az adatbázisba
            $result = $this->user_model->setNewPassword($to_email, $new_password_hash);
            // ha hiba történt a adatbázisba íráskor
            if ($result === false) {
                $message = array('status' => 'error', 'message' => 'Adatbázis hiba!');
                echo json_encode($message);
                exit;
            }
            // email küldés !!!!!!!!!!
            // settings adatok lekérdezése az adatbázisból
            $data = $this->user_model->get_settings();
            $from_email = $data['email'];
            $from_name = $data['ceg'];
            $subject = "Üzenet érkezett a {$from_name} weblaptól";
            $msg = <<<_msg

            <html>    
            <body>
                <h2>Új jelszó</h2>
                <div>
                    <p>
                        Az ön új jelszava a {$from_name} weblaphoz.
                    </p>
                    <p>
                        <strong>Az ön új jelszava: </strong> {$new_password}
                    </p>
                </div> 
            </body>
            </html>    
_msg;
            $result = $this->user_model->send_email($from_email, $from_name, $subject, $msg, $to_email, $to_name);
            if ($result) {
                $message = array('status' => 'success', 'message' => 'Új jelszó elküldve!');
                echo json_encode($message);
                exit;
            } else {
                // régi password hash visszaírása az adatbázisba
                $this->user_model->setNewPassword($to_email, $old_pw);
                $message = array('status' => 'error', 'message' => 'Az új jelszó küldése sikertelen!');
                echo json_encode($message);
                exit;
            }
        } else {
            $this->response->redirect('admin/error');
        }
    }
Example #10
0
 /**
  * Hírlevél küldése
  */
 public function send_newsletter()
 {
     header('Content-Type: text/event-stream');
     // recommended to prevent caching of event data.
     header('Cache-Control: no-cache');
     set_time_limit(0);
     //ob_implicit_flush(true);
     // NewsletterStat_model betöltése
     $this->loadModel('newsletterstat_model');
     $newsletter_id = $this->request->get_query('newsletter_id');
     //----------------
     if (!isset($newsletter_id)) {
         $this->send_msg('CLOSE', 'Hibas newsletter_id!');
         exit;
     } else {
         $newsletter_id = (int) $newsletter_id;
     }
     // TESZT futtatása (nincs küldés!)
     if ($this->debug) {
         $success = 0;
         $fail = 0;
         $max = 7;
         for ($i = 1; $i <= $max; $i++) {
             $number = rand(1000, 11000);
             $progress = round($i / $max * 100);
             //Progress
             //Hard work!!
             sleep(1);
             if ($number > 4000) {
                 $success += 1;
                 $this->send_msg($i, 'Sikeres   | id:' . $newsletter_id . '|   küldés a ' . $number . '@mail.hu címre', $progress);
             } else {
                 $fail += 1;
                 $this->send_msg($i, 'Sikertelen   | id: ' . $newsletter_id . '|   küldés a ' . $number . '@mail.hu címre', $progress);
             }
         }
         sleep(1);
         // adatok beírása a stats_newsletters táblába
         $data['sent_date'] = date('Y-m-d-G:i');
         $data['newsletter_id'] = $newsletter_id;
         $data['recepients'] = $success + $fail;
         $data['send_success'] = $success;
         $data['send_fail'] = $fail;
         $this->newsletterstat_model->insertStat($data);
         //utolsó válasz
         $this->send_msg('CLOSE', '<br />Sikeres küldések száma: ' . $success . '<br />' . 'Sikertelen küldések száma: ' . $fail . '<br />');
         exit;
     } else {
         $error = array();
         $success = array();
         $data['newsletter_id'] = $newsletter_id;
         $data['sent_date'] = date('Y-m-d-G:i');
         $data['error'] = 1;
         // új rekord a stat_newsletter táblába (visszatér a last_insert_id-vel)
         $statid = $this->newsletterstat_model->insertStat($data);
         // statid lekérdezése
         //$statid = $this->newsletterstat_model->selectStatId();
         // elküldendő hírlevél eleminek lekérdezése
         $newsletter_temp = $this->newsletter_model->selectNewsletter($newsletter_id);
         // e-mail címek, és hozzájuk tartozó user nevek (akiknek küldeni kell)
         $users_data = $this->newsletter_model->userEmails();
         foreach ($newsletter_temp as $value) {
             $subject = $value['newsletter_subject'];
             $body = $value['newsletter_body'];
         }
         foreach ($users_data as $value) {
             $user_emails[] = $value['user_email'];
             $user_names[] = $value['user_name'];
             $user_ids[] = $value['user_id'];
             $user_unsubs[] = $value['user_unsubscribe_code'];
         }
         //az összes email_cím száma
         $all_email_address = count($user_emails);
         /*----- Email-ek küldése -------*/
         // küldés simple mail-el történjen
         $simple_mail = false;
         // küldés simple mail-el
         if ($simple_mail === true) {
             // Létrehozzuk a SimpleMail objektumot
             $mail = new \System\Libs\SimpleMail();
             //a ciklusok számát fogja számolni (vagyis hogy éppen mennyi emailt küldött el)
             $progress_counter = 0;
             foreach ($user_emails as $key => $mail_address) {
                 /*
                 		//Since the tracking URL is a bit long, I usually put it in a variable of it's own
                 		$tracker = URL . 'track_open/' . $user_ids[$key] . '/' . $statid;
                 
                 		//Add the tracker to the message.
                 		$message = '<img alt="" src="'.$tracker.'" width="1" height="1" border="0" />';
                 		$unsubscribe_url = URL . 'leiratkozas/' . $user_ids[$key] . '/' . $user_unsubs[$key];
                 		$unsubscribe = '<p>Leiratkozáshoz kattintson a következő linkre: <a href="' . $unsubscribe_url . '">Leiratkozás</a></p>';
                 */
                 $progress_counter += 1;
                 //küldés állapota %-ban
                 $progress = round($progress_counter / $all_email_address * 100);
                 $mail->setTo($mail_address, $user_names[$key])->setSubject($subject)->setFrom('*****@*****.**', 'anonymous')->addMailHeader('Reply-To', '*****@*****.**', 'Mail Bot')->addGenericHeader('MIME-Version', '1.0')->addGenericHeader('Content-Type', 'text/html; charset="utf-8"')->addGenericHeader('X-Mailer', 'PHP/' . phpversion())->setMessage('<html><body>' . $body . '</body></html>')->setWrap(78);
                 // final sending and check
                 if ($mail->send()) {
                     $success[] = $mail_address;
                     //üzenet küldése
                     $this->send_msg($progress_counter, 'Sikeres küldés a ' . $mail_address . ' címre', $progress);
                 } else {
                     $error[] = $mail_address;
                     //üzenet küldése
                     $this->send_msg($progress_counter, 'Sikertelen küldés a ' . $mail_address . ' címre', $progress);
                 }
                 $mail->reset();
             }
         } else {
             // küldés PHPMailer-el
             $mail = new \PHPMailer();
             $settings = Config::get('email.server');
             if (true) {
                 //SMTP beállítások!!
                 $mail->isSMTP();
                 // Set mailer to use SMTP
                 //$mail->SMTPDebug = PHPMAILER_DEBUG_MODE; // Enable verbose debug output
                 $mail->SMTPAuth = $settings['smtp_auth'];
                 // Enable SMTP authentication
                 //$mail->SMTPKeepAlive = true; // SMTP connection will not close after each email sent, reduces SMTP overhead
                 // Specify SMTP host server
                 $mail->Host = $settings['smtp_host'];
                 //$mail->Host = 'localhost';
                 $mail->Username = $settings['smtp_username'];
                 // SMTP username
                 $mail->Password = $settings['smtp_password'];
                 // SMTP password
                 $mail->Port = $settings['smtp_port'];
                 // TCP port to connect to
                 $mail->SMTPSecure = $settings['smtp_encryption'];
                 // Enable TLS encryption, `ssl` also accepted
             } else {
                 $mail->IsMail();
             }
             $mail->CharSet = 'UTF-8';
             //karakterkódolás beállítása
             $mail->WordWrap = 78;
             //sortörés beállítása (a default 0 - vagyis nincs)
             $mail->From = $settings['from_email'];
             //feladó e-mail címe
             $mail->FromName = $settings['from_name'];
             //feladó neve
             $mail->addReplyTo('*****@*****.**', 'Information');
             //Set an alternative reply-to address
             $mail->Subject = $subject;
             // Tárgy megadása
             $mail->isHTML(true);
             // Set email format to HTML
             $mail->Body = '<html><body>' . $body . '</body></html>';
             //a ciklusok számát fogja számolni (vagyis hogy éppen mennyi emailt küldött el)
             $progress_counter = 0;
             //email-ek elküldés ciklussal
             foreach ($user_emails as $key => $mail_address) {
                 $progress_counter += 1;
                 //küldés állapota %-ban
                 $progress = round($progress_counter / $all_email_address * 100);
                 $mail->addAddress($mail_address, $user_names[$key]);
                 // Add a recipient (Name is optional)
                 //$mail->addCC('*****@*****.**');
                 //$mail->addBCC('*****@*****.**');
                 //$mail->addStringAttachment('image_eleresi_ut_az_adatbazisban', 'YourPhoto.jpg'); //Assumes the image data is stored in the DB
                 //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
                 //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
                 //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
                 // final sending and check
                 if ($mail->send()) {
                     $success[] = $mail_address;
                     //folyamat alatti válaszüzenet küldése
                     $this->send_msg($progress_counter, 'Sikeres küldés a ' . $mail_address . ' címre', $progress);
                 } else {
                     $error[] = $mail_address;
                     //folyamat alatti válaszüzenet küldése
                     $this->send_msg($progress_counter, 'Sikertelen küldés a ' . $mail_address . ' címre', $progress);
                 }
                 $mail->clearAddresses();
                 $mail->clearAttachments();
             }
         }
         // ----- email küldés vége -------------
         // ha volt sikeres küldés, adatbázisba írjuk az elküldés dátumát
         if (count($success) > 0) {
             // az adatbázisban módosítjuk az utolsó küldés mező tartalmát
             $lastsent_date = date('Y-m-d-G:i');
             $this->newsletter_model->updateLastSentDate($newsletter_id, $lastsent_date);
         }
         // adatok beírása a stats_newsletters táblába
         $data['recepients'] = count($success) + count($error);
         $data['send_success'] = count($success);
         $data['send_fail'] = count($error);
         $data['error'] = 0;
         // adatok módosítása a newsletter_stats táblában
         $this->newsletterstat_model->updateStat($newsletter_id, $data);
         // utolsó válasz
         $this->send_msg('CLOSE', '<br />Sikeres küldések száma: ' . $data['send_success'] . '<br />' . 'Sikertelen küldések száma: ' . $data['send_fail'] . '<br />');
     }
     // email küldés vége
 }