예제 #1
0
 /**
  * @return array
  */
 function &GetAccounts()
 {
     if (!$this->accounts) {
         $this->accounts =& $this->db->SelectAccounts($this->account->IdUser);
     }
     return $this->accounts;
 }
예제 #2
0
 public static function getConnection()
 {
     if (is_null(self::$connection)) {
         self::$connection = self::makeConnection();
     }
     return self::$connection;
 }
예제 #3
0
파일: Users.php 프로젝트: gpichurov/cram
 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;
 }
예제 #4
0
 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);
     }
 }
예제 #5
0
 /**
  * @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;
 }
예제 #6
0
 /**
  * @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;
 }
예제 #7
0
<?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>
예제 #8
0
 /**
  * @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);
     }
 }
예제 #9
0
파일: test.php 프로젝트: gpichurov/cram
<?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));
예제 #10
0
파일: signUp.php 프로젝트: gpichurov/cram
        $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">
예제 #11
0
 /**
  * @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);
     }
 }
예제 #12
0
<?php

require_once 'php/autoload.php';
require_once 'php/functions.php';
session_start();
DbStorage::deleteQuestions();
DbStorage::deleteFlashcards();
header('Location: profile.php');
die;
예제 #13
0
 /**
  * @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;
 }
예제 #14
0
 /**
  * @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;
 }
예제 #15
0
파일: profile.php 프로젝트: gpichurov/cram
<?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">