/** * @return array */ function &GetAccounts() { if (!$this->accounts) { $this->accounts =& $this->db->SelectAccounts($this->account->IdUser); } return $this->accounts; }
public static function getConnection() { if (is_null(self::$connection)) { self::$connection = self::makeConnection(); } return self::$connection; }
public function checkLogin() { $sqlUsername = sprintf('SELECT * FROM %s WHERE %s = ?', $this->getTableName(), $this->getUsernameName()); $dataUsername = DbStorage::query($sqlUsername, [$this->getUsernameValue()]); if (!empty($dataUsername) && $dataUsername[0]['password'] == $this->getPasswordValue()) { return $dataUsername; } return false; }
function questionsAdd($data, $card) { array_shift($data); array_shift($data); $data = array_values($data); for ($i = 0; $i < count($data); $i += 2) { $question = new Questions($data[$i], $data[$i + 1], DbStorage::checkID($card)); DbStorage::insertObject($question); } }
/** * @param WebMailMessageCollection $messageCollection * @param DbStorage $dbStorage * @param Folder $folder * @return bool */ function ApplyFilters(&$messageCollection, &$dbStorage, &$folder) { $filters =& $dbStorage->SelectFilters($this->Account->Id); $lastIdMsg = $dbStorage->SelectLastIdMsg(); $mailBoxesSize = $dbStorage->SelectMailboxesSize(); $result = true; foreach (array_keys($messageCollection->Instance()) as $key) { $message =& $messageCollection->Get($key); $needToSave = true; if ($this->_settings->EnableMailboxSizeLimit && $this->Account->MailboxLimit < $mailBoxesSize + $message->Size) { setGlobalError(ErrorGetMailLimit); return false; } $mailBoxesSize += $message->Size; $lastIdMsg += rand(1, 10); $message->IdMsg = $lastIdMsg; if ($folder->SyncType == FOLDERSYNC_NewEntireMessages || $folder->SyncType == FOLDERSYNC_AllEntireMessages) { $result &= $dbStorage->SaveMessage($message, $folder); } elseif ($folder->SyncType == FOLDERSYNC_NewHeadersOnly || $folder->SyncType == FOLDERSYNC_AllHeadersOnly) { $result &= $dbStorage->SaveMessageHeader($message, $folder, false); } } if ($folder->Type == FOLDERTYPE_Inbox && $result && isset($GLOBALS['useFilters'])) { $mailProcessor = new MailProcessor($this->Account); foreach (array_keys($filters->Instance()) as $key) { $filter =& $filters->Get($key); $action = $filter->GetActionToApply($message); $uidArray = array($message->Uid); $messageIdUidSet[$message->IdMsg] = $message->Uid; switch ($action) { case FILTERACTION_DeleteFromServerImmediately: $result &= $mailProcessor->DeleteMessages($messageIdUidSet, $folder); break; case FILTERACTION_MoveToFolder: $toFolder =& new Folder($filter->IdAcct, $filter->IdFolder, ''); $dbStorage->GetFolderInfo($toFolder); $result &= $mailProcessor->MoveMessages($messageIdUidSet, $folder, $toFolder); break; case FILTERACTION_MarkGrey: $result &= $mailProcessor->SetFlags($messageIdUidSet, $folder, MESSAGEFLAGS_Grayed, ACTION_Set); break; } } } return $result; }
/** * @param Folder $folders * @param DbStorage $dbStorage * @return bool */ function _synchronizeFolderWithOpenDbConnection(&$folder, &$dbStorage) { $result = true; if ($folder->SyncType == FOLDERSYNC_DontSync || $folder->SyncType == FOLDERSYNC_DirectMode) { return true; } //get uids from pop3 server $pop3Uids =& $this->_getPop3Uids(true); //get uids from DB $dbUids =& $dbStorage->SelectReadsRecords(); $dbUids = array_keys($dbUids); //get only new messages from pop3 server $newUids = array_diff($pop3Uids, $dbUids); //get deletd uids from pop3 server $uidsToDelete = array_diff($dbUids, $pop3Uids); //get Array sizes all messages on pop3 server $pop3Sizes =& $this->_getPop3Sizes(true); //get size all messages in DB $mailBoxesSize = $dbStorage->SelectMailboxesSize(); if ($this->DownloadedMessagesHandler != null) { ShowDownloadedMessageNumber($folder->Name, count($newUids)); call_user_func($this->DownloadedMessagesHandler); } foreach ($newUids as $newUid) { //get id message from uid pop3 server $index = $this->_getMessageIndexFromUid($pop3Uids, $newUid); $indexArray = array($index); $mailBoxesSize += $pop3Sizes[$index]; if (!$this->_settings->EnableMailboxSizeLimit || $this->Account->MailboxLimit > $mailBoxesSize) { //Check sync mode if ($folder->SyncType == FOLDERSYNC_NewEntireMessages || $folder->SyncType == FOLDERSYNC_AllEntireMessages) { //Entire Message $mailMessageCollection =& $this->LoadMessages($indexArray, false, $folder); } elseif ($folder->SyncType == FOLDERSYNC_NewHeadersOnly || $folder->SyncType == FOLDERSYNC_AllHeadersOnly) { //Entire Header $mailMessageCollection =& $this->_loadMessageHeaders($indexArray, false, $folder); } //Apply filters and save message in DB if (!$this->ApplyFilters($mailMessageCollection, $dbStorage, $folder)) { return false; //$result = false; //break; } //Check mailmode to delete from server if ($this->Account->MailMode == MAILMODE_DeleteMessagesFromServer) { //Delete received messages from server $this->_pop3Mail->delete_mail($index); } //Save uid to reads table $dbStorage->InsertReadsRecords(array($newUid)); } else { $result = false; setGlobalError(ErrorGetMailLimit); break; } } //delete from DB if (count($uidsToDelete) > 0) { if ($folder->SyncType == FOLDERSYNC_AllHeadersOnly || $folder->SyncType == FOLDERSYNC_AllEntireMessages) { $result &= $dbStorage->DeleteMessages($uidsToDelete, true, $folder); } } if (($this->Account->MailMode == MAILMODE_KeepMessagesOnServer || $this->Account->MailMode == MAILMODE_KeepMessagesOnServerAndDeleteMessageWhenItsRemovedFromTrash) && $this->Account->MailsOnServerDays > 0) { $expiredUids =& $dbStorage->SelectExpiredMessageUids(); $result &= $this->DeleteMessages($expiredUids, true, $folder); } if (!empty($uidsToDelete)) { $result &= $dbStorage->DeleteReadsRecordsByUids($uidsToDelete); } $result &= $dbStorage->UpdateMailboxSize(); return $result; }
<?php require_once 'php/autoload.php'; require_once 'php/functions.php'; session_start(); if (!$_SESSION['username']) { header('Location: login.php'); die; } $cnt = 0; $data = DbStorage::showCards(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>cram</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/index.css"> <link rel="stylesheet" href="bootstrap-3.3.6-dist/css/bootstrap.min.css"> </head> <body class="container-fluid"> <nav class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a href="index.php"> <img class="img-responsive" src="images/theLogo.png" alt=""> </a> </div>
/** * @param Account $account * @return MsSqlStorage */ function MsSqlStorage(&$account, $settings = null) { DbStorage::DbStorage($account, $settings); $this->_escapeType = QUOTE_DOUBLE; $this->_commandCreator = new MsSqlCommandCreator($settings); if ($this->_settings->UseCustomConnectionString || $this->_settings->UseDsn) { require_once WM_ROOTPATH . 'db/class_dbodbc.php'; if ($this->_settings->UseCustomConnectionString) { $this->_dbConnection = new DbOdbc($this->_settings->DbCustomConnectionString, $this->_settings->DbType, $this->_settings->DbLogin, $this->_settings->DbPassword); } else { $this->_dbConnection = new DbOdbc('DSN=' . $this->_settings->DbDsn . ';', $this->_settings->DbType, $this->_settings->DbLogin, $this->_settings->DbPassword); } } else { require_once WM_ROOTPATH . 'db/class_dbmssql.php'; $this->_dbConnection = new DbMsSql($this->_settings->DbHost, $this->_settings->DbLogin, $this->_settings->DbPassword, $this->_settings->DbName); } }
<?php /** * Created by @testPhpStorm. * User: georgi * Date: 16.03.16 * Time: 18:39 */ require_once realpath(__DIR__ . '/autoload.php'); session_start(); $_SESSION['id'] = 1; $_GET['id'] = 28; $user = new Users('Test1', 'test1'); $card = new FlashCards('test', 'des', 1); //var_dump(DbStorage::selectCards()); var_dump(DbStorage::deleteFlashcards()); //var_dump(DbStorage::checkLogin($user));
$errors[] = 'Email is required'; } if (!getValue($data, 'pwd') || mb_strlen(getValue($data, 'pwd'), 'UTF-8') < 5) { $errors[] = 'Password at last 5 characters is required'; } if ($data['pwd'] !== $data['pwdRep']) { $errors[] = 'Password must match'; } if (DbStorage::checkUsername($user)) { $errors[] = 'Username exist'; } if (DbStorage::checkEmail($user)) { $errors[] = 'Email exist'; } if (!$errors) { DbStorage::insertObject($user); header('Location: login.php'); die; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>signup</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/index.css"> <link rel="stylesheet" href="bootstrap-3.3.6-dist/css/bootstrap.min.css">
/** * @param Account $account * @return MsSqlStorage */ function MsSqlStorage(&$account) { DbStorage::DbStorage($account); $this->_escapeType = QUOTE_DOUBLE; $this->_commandCreator =& new MsSqlCommandCreator(); if ($this->_settings->UseCustomConnectionString) { require_once WM_ROOTPATH . 'db/class_dbodbc.php'; $this->_dbConnection =& new DbOdbc($this->_settings->DbCustomConnectionString, DB_MSSQLSERVER); } else { require_once WM_ROOTPATH . 'db/class_dbmssql.php'; $this->_dbConnection =& new DbMsSql($this->_settings->DbHost, $this->_settings->DbLogin, $this->_settings->DbPassword, $this->_settings->DbName); } }
<?php require_once 'php/autoload.php'; require_once 'php/functions.php'; session_start(); DbStorage::deleteQuestions(); DbStorage::deleteFlashcards(); header('Location: profile.php'); die;
/** * @param WebMailMessage $message * @param DbStorage $dbStorage * @param Folder $folder * @return bool */ function ApplyFilters(&$message, &$dbStorage, &$folder, &$filters) { $result = true; $needToSave = true; if ($folder->Type == FOLDERTYPE_Inbox && $result && isset($GLOBALS['useFilters'])) { $mailProcessor = null; if (null == $this->mailproc) { $this->mailproc = new MailProcessor($this->Account); } $mailProcessor =& $this->mailproc; $messageIdUidSet = array($message->IdMsg => $message->Uid); $filtersKeys = array_keys($filters->Instance()); foreach ($filtersKeys as $key) { $filter =& $filters->Get($key); $action = $filter->GetActionToApply($message); switch ($action) { case FILTERACTION_DeleteFromServerImmediately: $result &= $mailProcessor->DeleteFromServerImmediately($messageIdUidSet, $folder); $needToSave = false; break 2; case FILTERACTION_MoveToSpamFolder: $folders = $mailProcessor->GetFolders(); $spamFolder = $folders->GetFolderByType(FOLDERTYPE_Spam); if ($spamFolder && $spamFolder->IdDb) { $filter->IdAcct = $this->Account->Id; $filter->IdFolder = $spamFolder->IdDb; } else { break; } case FILTERACTION_MoveToFolder: if ($filter->IdFolder != $folder->IdDb) { if ($folder->SyncType == FOLDERSYNC_NewEntireMessages || $folder->SyncType == FOLDERSYNC_AllEntireMessages) { $result &= $dbStorage->SaveMessage($message, $folder); } else { if ($folder->SyncType == FOLDERSYNC_NewHeadersOnly || $folder->SyncType == FOLDERSYNC_AllHeadersOnly) { $result &= $dbStorage->SaveMessageHeader($message, $folder, false); } } $messageIdUidSet = array($message->IdMsg => $message->Uid); if ($result) { $needToSave = false; $toFolder = new Folder($filter->IdAcct, $filter->IdFolder, ''); $dbStorage->GetFolderInfo($toFolder); $_tDowmloaded = $this->DownloadedMessagesHandler; $_tDeleting = $this->ShowDeletingMessageNumber; $this->DownloadedMessagesHandler = $this->ShowDeletingMessageNumber = null; $result &= $mailProcessor->MoveMessages($messageIdUidSet, $folder, $toFolder); $this->DownloadedMessagesHandler = $_tDowmloaded; $this->ShowDeletingMessageNumber = $_tDeleting; if ($this->UpdateFolderHandler != null) { call_user_func_array($this->UpdateFolderHandler, array($toFolder->IdDb, $toFolder->FullName)); } } else { if ($this->UpdateFolderHandler != null) { call_user_func_array($this->UpdateFolderHandler, array($folder->IdDb, $folder->FullName)); } } } break 2; case FILTERACTION_MarkGrey: $result &= $mailProcessor->SetFlags($messageIdUidSet, $folder, MESSAGEFLAGS_Grayed, ACTION_Set, false); $message->Flags |= MESSAGEFLAGS_Grayed; break; } unset($filter); } } if ($needToSave) { if ($folder->SyncType == FOLDERSYNC_NewEntireMessages || $folder->SyncType == FOLDERSYNC_AllEntireMessages) { $result &= $dbStorage->SaveMessage($message, $folder); if ($this->UpdateFolderHandler != null) { call_user_func_array($this->UpdateFolderHandler, array($folder->IdDb, $folder->FullName)); } } else { if ($folder->SyncType == FOLDERSYNC_NewHeadersOnly || $folder->SyncType == FOLDERSYNC_AllHeadersOnly) { $result &= $dbStorage->SaveMessageHeader($message, $folder, false); if ($this->UpdateFolderHandler != null) { call_user_func_array($this->UpdateFolderHandler, array($folder->IdDb, $folder->FullName)); } } } } return $result; }
/** * @param Folder $folders * @param DbStorage $dbStorage * @param int $lastIdMsg * @return bool */ function _synchronizeFolderWithOpenDbConnection(&$folder, &$dbStorage) { $log =& CLog::CreateInstance(); $result = true; if ($folder->SyncType == FOLDERSYNC_DontSync || $folder->SyncType == FOLDERSYNC_DirectMode || $folder->Hide) { if ($this->UpdateFolderHandler != null && $folder->SyncType == FOLDERSYNC_DirectMode) { call_user_func_array($this->UpdateFolderHandler, array($folder->IdDb, $folder->FullName)); } return true; } $foldername = ''; if ($this->DownloadedMessagesHandler != null) { $foldername = $folder->GetFolderName($this->Account); call_user_func_array($this->DownloadedMessagesHandler, array($foldername, 0)); } if (!$this->_imapMail->open_mailbox($folder->FullName, false, true)) { return true; } $_isAllUpdate = $folder->SyncType == FOLDERSYNC_AllHeadersOnly || $folder->SyncType == FOLDERSYNC_AllEntireMessages; $_isUidsOnly = $folder->SyncType == FOLDERSYNC_NewHeadersOnly; /* get uid, flags and size from IMAP4 Server */ if ($log->Enabled) { $start = getmicrotime(); } $paramsMessages = $this->_imapMail->getParamsMessages(); if ($log->Enabled) { $log->WriteLine('IMAP4: getParamsMessages()=' . (getmicrotime() - $start)); } if (!is_array($paramsMessages)) { return false; } $imapUids = $imapSizes = $imapUidFlags = $imapUidSizes = array(); $this->_imapArrayForeach($paramsMessages, $imapUids, $imapSizes, $imapUidFlags, $imapUidSizes); unset($paramsMessages); $dbUidsIdMsgsFlags =& $dbStorage->SelectIdMsgAndUidByIdMsgDesc($folder); $dbUids = $dbUidsFlag = array(); foreach ($dbUidsIdMsgsFlags as $value) { $dbUids[] = $value[1]; $dbUidsFlag[$value[1]] = $value[2]; } unset($dbUidsIdMsgsFlags); /* array need added to DB */ //$newUids = array_diff($imapUids, $dbUids); $newUids = array(); foreach ($imapUids as $_imUid) { if (!isset($dbUidsFlag[$_imUid])) { $newUids[] = $_imUid; } } if ($this->DownloadedMessagesHandler != null && count($newUids) > 0) { call_user_func_array($this->DownloadedMessagesHandler, array($foldername, count($newUids))); } if ($_isAllUpdate) { /* update flags */ $_flags4Update = array(); /* intersect uids */ foreach ($imapUids as $_imUid) { if (isset($dbUidsFlag[$_imUid])) { $flagBD = (int) $dbUidsFlag[$_imUid]; $flagImap = (int) $this->getIntFlags($imapUidFlags[$_imUid]); /* update messages whith different flags */ if ($flagBD != $flagImap) { $_flags4Update[$flagImap][] = $_imUid; } } } if (count($_flags4Update) > 0) { foreach ($_flags4Update as $_flag => $_uidArray) { if (is_array($_uidArray)) { $dbStorage->UpdateMessageFlags($_uidArray, true, $folder, $_flag, $this->Account); } } if ($this->UpdateFolderHandler != null) { call_user_func_array($this->UpdateFolderHandler, array($folder->IdDb, $folder->FullName)); } } /* delete from DB */ //$uidsToDelete = array_diff($dbUids, $imapUids); $uidsToDelete = array(); foreach ($dbUids as $_dbUid) { if (!isset($imapUidFlags[$_dbUid])) { //$dbUidsFlag[$_dbUid] = $value[2]; $uidsToDelete[] = $_dbUid; } } if (count($uidsToDelete) > 0) { if ($this->UpdateFolderHandler != null) { call_user_func_array($this->UpdateFolderHandler, array($folder->IdDb, $folder->FullName)); } // $result &= $dbStorage->SetMessagesFlags($uidsToDelete, true, $folder, MESSAGEFLAGS_Deleted, ACTION_Set); $result &= $dbStorage->DeleteMessages($uidsToDelete, true, $folder); $result &= $dbStorage->UpdateMailboxSize(); } } $maxEnvelopesPerSession = 1; /* get size all messages in DB */ $mailBoxesSize = $dbStorage->SelectMailboxesSize(); $filters =& $dbStorage->SelectFilters($this->Account->Id, true); if ($folder->SyncType == FOLDERSYNC_NewHeadersOnly || $folder->SyncType == FOLDERSYNC_AllHeadersOnly) { $syncCycles = ceil(count($newUids) / MAX_ENVELOPES_PER_SESSION); for ($q = 0; $q < $syncCycles; $q++) { if (!$this->_imapMail->open_mailbox($folder->FullName)) { return true; } $cyclesNewUids = array_slice($newUids, $q * MAX_ENVELOPES_PER_SESSION, MAX_ENVELOPES_PER_SESSION); $mailMessageCollection = null; $mailMessageCollection =& $this->LoadMessageHeadersInOneRequest($folder, $cyclesNewUids, true); if ($mailMessageCollection) { for ($i = 0, $c = $mailMessageCollection->Count(); $i < $c; $i++) { if ($this->DownloadedMessagesHandler != null && function_exists($this->DownloadedMessagesHandler)) { call_user_func($this->DownloadedMessagesHandler); } $message =& $mailMessageCollection->Get($i); $mailBoxesSize += $message->Size; if ($this->_settings->EnableMailboxSizeLimit && $this->Account->MailboxLimit > 0 && $this->Account->MailboxLimit < $mailBoxesSize) { $result = false; setGlobalError(ErrorGetMailLimit); break 2; } if (!$this->ApplyFilters($message, $dbStorage, $folder, $filters)) { $result = false; } } } } } else { $syncCycles = ceil(count($newUids) / $maxEnvelopesPerSession); for ($i = 0; $i < $syncCycles; $i++) { $mailBoxesSize += $imapSizes[$i + 1]; if ($this->_settings->EnableMailboxSizeLimit && $this->Account->MailboxLimit > 0 && $this->Account->MailboxLimit < $mailBoxesSize) { $result = false; setGlobalError(ErrorGetMailLimit); break; } if (!$this->_imapMail->open_mailbox($folder->FullName)) { return true; } $listPartToDownload = $i != $syncCycles - 1 ? array_slice($newUids, $i * $maxEnvelopesPerSession, $maxEnvelopesPerSession) : array_slice($newUids, $i * $maxEnvelopesPerSession); if ($this->DownloadedMessagesHandler != null && function_exists($this->DownloadedMessagesHandler)) { call_user_func($this->DownloadedMessagesHandler); } $mailMessageCollection = null; $mailMessageCollection =& $this->LoadMessages($listPartToDownload, true, $folder, $imapUids, $imapUidFlags, $imapUidSizes); if ($mailMessageCollection && $mailMessageCollection->Count() > 0) { $message =& $mailMessageCollection->Get(0); if (!$this->ApplyFilters($message, $dbStorage, $folder, $filters)) { $result = false; break; } } } } $result &= $dbStorage->UpdateMailboxSize(); return $result; }
<?php require_once 'php/autoload.php'; require_once 'php/functions.php'; session_start(); if (!$_SESSION['username']) { header('Location: login.php'); die; } $data = DbStorage::selectCards(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>cram</title> <!--<link rel="stylesheet" href="css/reset.css">--> <link rel="stylesheet" href="css/index.css"> <link rel="stylesheet" href="bootstrap-3.3.6-dist/css/bootstrap.min.css"> </head> <body class="container-fluid"> <nav class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <a href="index.php"> <img class="img-responsive" src="images/theLogo.png" alt=""> </a> </div> <ul class="nav navbar-nav navbar-right">