Ejemplo n.º 1
0
function newFolder()
{
    global $conn_id;
    global $lang_title_new_folder;
    global $lang_new_folder_name;
    global $lang_folder_exists;
    global $lang_folder_cant_make;
    global $filesCharSet;
    // Set vars
    $vars = "&ftpAction=newFolder";
    $folder = empty($_POST["newFolder"]) ? "" : trim(quotesUnescape($_POST["newFolder"]));
    if ($filesCharSet != "utf-8") {
        $folder = iconv("utf-8", $filesCharSet, $folder);
    }
    if ($folder == "") {
        $title = $lang_title_new_folder;
        $width = 400;
        $height = 40;
        displayPopupOpen(0, $width, $height, 0, $title);
        echo "<input type=\"text\" name=\"newFolder\" id=\"newFolder\" placeholder=\"" . $lang_new_folder_name . "\" onkeypress=\"if (event.keyCode == 13){ processForm('" . $vars . "'); return false;}\">";
        displayPopupClose(0, $vars, 1);
    } else {
        // Check if folder exists
        if (checkFileExists("d", $folder, $_SESSION["dir_current"]) == 1 || $folder == "..") {
            recordFileError("folder", $folder, $lang_folder_exists);
        } else {
            if (!@ftp_mkdir($conn_id, $folder)) {
                recordFileError("folder", $folder, $lang_folder_cant_make);
            }
        }
    }
}
Ejemplo n.º 2
0
/**
 * Функция отправляет письма
 */
function sendMail()
{
    // Явное указание на использование глобальных переменных
    global $localhostPath, $dbConnect, $prefix, $maxMailSend, $maxMailSendInDay, $log, $timeout;
    // Устанавливаем значение "по умолчанию" переменной статуса завершения функции
    $status = false;
    // Формирвоание текста сообщения о наличии файла "stop.txt"
    $stopFileExistlogMessage = date('d.m.Y H:i:s') . ": Выполнение предыдущей версии скрипта еще не завершено!";
    // Формирвоание текста сообщения о наличии файла "gotLimit.txt"
    $gotlimitFileExistlogMessage = date('d.m.Y H:i:s') . ": Достигнут суточный лимит отправляемых писем. Рассылку необходимо возобновить вручную через 24 часа!";
    // Если файла "gotLimit.txt" на сервере нет
    // Если файла "stop.txt" на сервере нет
    // Если соединение с БД установлено
    // И параметры скрипта переопределены
    // И максимальное количество отправляемых за раз писем не равно 0
    if (!checkFileExists('gotLimit.txt', $gotlimitFileExistlogMessage) && !checkFileExists('stop.txt', $stopFileExistlogMessage) && dbConnect() && setParams() && $maxMailSend !== 0) {
        // Создаем файл "stop.txt"
        createFile('stop.txt', 'stop');
        // Если есть активные почтовые рассылки, получаем параметры первой активной рассылки
        if ($mail = getMailingGroup()) {
            // Добавляем сообщение о начале работы скрипта в массив лога
            $log[] = date('d.m.Y H:i:s') . ": Начало работы скрипта!";
            // Получение списка адресатов, кому были отправлены письма
            $whoSent = $mail['whoSent'] ? explode(',', $mail['whoSent']) : array();
            // Получаем массив категорий материалов рассылки
            $categories = $mail['categories'] ? array_diff(explode(',', $mail['categories']), array('', ' ', null)) : array();
            // Получаем количество отправленных писем из отчера за предыдущий день
            $sendedYesterday = getYesterdayReportData();
            // Определение количества отправленных писем
            $sendedInAllTime = $mail['log'] > count($whoSent) ? $mail['log'] : count($whoSent);
            // Подсчитываем, сколько еще можно отправить писем за этот день, не превышая лимитов хостинга
            $needToSend = $maxMailSendInDay + $sendedYesterday - $sendedInAllTime;
            // Переопределение максимального количества отправляемых за раз писем
            $maxMailSend = $needToSend >= $maxMailSend ? $maxMailSend : $needToSend;
            // Если не достигнут суточный лимит количества отправляемых писем
            if ($needToSend > 0) {
                // Получение списка подписчиков активной рассылки
                $subscribers = getSubscribers($categories, $mail['log']);
                // Если массив подписчиков не пуст
                if (!empty($subscribers)) {
                    // Закрываем текущее соединение с БД, во избежание зазрыва соединения по таймауту
                    mysql_close($dbConnect);
                    // Обход массива подписчиков
                    foreach ($subscribers as $subscriber) {
                        // Если количество отправленных писем меньше максимального количества отправляемых писем за раз
                        // И подписчику еще не отправлялось письмо
                        if ($countMailSend < $maxMailSend && !in_array($subscriber['email'], $whoSent)) {
                            // Установка временного интервала между отправками писем в 10 секунд
                            sleep($timeout);
                            // Определение значения по умолчанию сгенерированной строки, добавляемой к телу письма
                            $generatorStr = '';
                            // Если параметр "Подключать словарь генерации случайного текста?" рассылки установлен в позицию "Да"
                            if ($mail['generator'] == 1) {
                                // Получение сгенерированной строки случайного текста
                                $generator = generator();
                                // Если строка не сгенерирована
                                if (!$generator) {
                                    // Переход к следующей итерации цикла
                                    continue;
                                }
                                // Добавляем сгенерированную строчку случайного текста
                                $generatorStr = $generator;
                            }
                            /* --------- Генерация письма -------- */
                            // Тема письма
                            $subject = $mail['subject'];
                            // Формируем тело письма для отправки
                            // Подставляем Имя пльзователя в тело в шаблон письма если есть маркер -{fio}-
                            $body = str_replace('-{fio}-', $subscriber['fio'], $mail['textemail']);
                            // Подставляем Email пльзователя в тело в шаблон письма если есть маркер -{fio}-
                            $body = str_replace('-{email}-', $subscriber['email'], $body);
                            // Добавление сгенерированной строки к телу письма
                            $body .= $generatorStr;
                            // Формируем заголовок письма
                            $headers = "MIME-Version: 1.0\r\n";
                            $headers .= "Content-type: text/html; charset=utf-8\r\n";
                            $headers .= "From: " . $mail['myemail'] . "\r\n";
                            $headers .= "Reply-To: " . $mail['myemail'] . "\r\n";
                            /* --------- Отправка письма -------- */
                            // Отправка письма адресату
                            $sendingMail = mail($subscriber['email'], $subject, $body, $headers);
                            /* --------- Проверка результата операции отправки -------- */
                            // Если письмо успешно отправлено
                            if ($sendingMail) {
                                // Добавляем E-mail адрес подписчика в массив адресатов, кому уже отправлены письма
                                $whoSent[] = $subscriber['email'];
                                // Формируем запрос на обновление списка отправленных у подписчика
                                $updateSubscriberInfo[] = "(" . $subscriber['id'] . ", '" . addslashes($subscriber['downloadedDocs'] . "\r\n" . $mail['id'] . ". " . $mail['subject'] . " (" . date('H:i:s d.m.y') . ")") . "')";
                                $log[] = 'Письмо c id=' . $mail['id'] . ' успешно отправлено адресату ' . $subscriber['email'];
                            } else {
                                // Добавляем сообщение об ошибке в массив лога ошибок
                                $log[] = 'Письмо c id=' . $mail['id'] . ' не отправлено на е-mail ' . $subscriber['email'];
                            }
                            // Удаление переменных
                            unset($body, $subject, $header);
                            // Увеличиваем общий счетчик отправленных писем на единицу
                            $countMailSend++;
                        } else {
                            // Переход к следующей итерации цикла
                            continue;
                        }
                    }
                    // Формируем запрос в БД на обновление информации о рассылке
                    $query = "UPDATE `" . $prefix . "subscribers_emails` SET  `log`=" . ($mail['log'] + $countMailSend) . ", `whoSent`='" . implode(',', $whoSent) . "', `noteMail`='" . $mail['noteMail'] . "\r\n" . date('H:i:s d.m.Y') . ":Отправлено всего на " . count($whoSent) . " e-mail адресов' WHERE `id`=" . $mail['id'];
                } else {
                    // Формируем запрос в БД на обновление информации о рассылке
                    $query = "UPDATE `" . $prefix . "subscribers_emails` SET `log`=0, `published`=-1, `send_date`='" . date('Y-m-d H:i:s') . "', `whoSent`='" . implode(',', $whoSent) . "', `noteMail`='" . $mail['noteMail'] . "\r\n" . date('H:i:s d.m.Y') . ":Отправлено всего на " . count($whoSent) . " e-mail адресов' WHERE `id`=" . $mail['id'];
                }
                // Восстанавливаем отключенное ранее соединение с БД
                dbConnect();
                // Отправка запроса в БД и получение результата
                $resultToDb = mysql_query($query, $dbConnect);
                // Если последняя операция MySQL вернула сообщение об ошибке (не пустую строку)
                if (!$resultToDb) {
                    // Добавленеи сообщения об ошибках операции в MySQL в массив лога ошибок
                    $log[] = "MySQL query error: " . mysql_error() . ' (' . $query . ')';
                }
                // Если массив запросов на обновление списка отправленных материалов подписчику не пустой
                if ($updateSubscriberInfo) {
                    // Преобразовываем массив в строку
                    $updateSubscriberInfo = implode(',', $updateSubscriberInfo);
                    // Формируем строку запроса в БД на внесение изменений в данные подписчиков в БД
                    $updateSubscriberInfo = 'INSERT INTO `' . $prefix . 'subscribers` (`id`, `downloadedDocs`) VALUES' . $updateSubscriberInfo . ' ON DUPLICATE KEY UPDATE `downloadedDocs` = VALUES(`downloadedDocs`)';
                    // Отправка запроса в БД и получение результата
                    $res = mysql_query($updateSubscriberInfo, $dbConnect);
                    if (!$res) {
                        // Добавленеи сообщения об ошибках операции в MySQL в массив лога ошибок
                        $log[] = "MySQL query error: " . mysql_error() . ' (' . $query . ')';
                    }
                }
            } else {
                // Добавленеи сообщение о достижении суточного лимита в массив лога ошибок
                $log[] = "Достигнут суточный лимит отправляемых писем. Рассылка будет возобновлена завтра!";
                // Проверяем, существует ли файл "dayReport.txt" на сервере
                if (file_exists($localhostPath . 'dayReport.txt')) {
                    // Удаление файла "dayReport.txt"
                    unlink($localhostPath . 'dayReport.txt');
                }
                // Вызываем функцию создания файла отчета об общем количестве отправленных писем по текущей рассылке
                createFile('dayReport.txt', count($whoSent));
                // Вызываем функцию создания файла
                createFile('gotLimit.txt', 'true');
            }
            // Добавляем сообщение об окончании работы скрипта в массив лога
            $log[] = date('d.m.Y H:i:s') . ": Завершение работы скрипта!";
        } else {
            // Добавляем сообщение об окончании работы скрипта в массив лога
            $log[] = date('d.m.Y H:i:s') . ": Рассылка не ведется! Нет активных почтовых рассылок!";
        }
        // Удаление файла "stop"
        unlink($localhostPath . 'stop.txt');
        // Устанавливаем значение переменной статуса завершения функции
        $status = true;
    }
    // Закрываем текущее соединение с БД
    mysql_close($dbConnect);
    // Записываем логи в файл
    writeToLog();
    // Завершаем выполнение работы скрипта. Выходим из функции
    return $status;
}
                        
                        <?php 
include "../../databaseInfo.php";
define("TARGET_DIR", "../../images/");
$currentStoredImageName = getCurrentStoredImageName();
if (!empty($_POST["title"]) && !empty($_POST["date"]) && !empty($_POST["description"]) && (!empty($_POST["imgDescription"]) && empty($_FILES["imgUpload"]["name"]))) {
    if (submitInformation(trim($_POST["title"]), trim($_POST["description"]), $_POST["date"], "", trim($_POST["imgDescription"]))) {
        displayInfoForm("success");
        displayImageForm("success_info");
    } else {
        displayInfoForm("fail_submit");
        displayImageForm("fail_info");
    }
} elseif (!empty($_POST["title"]) && !empty($_POST["date"]) && !empty($_POST["description"]) && (!empty($_POST["imgDescription"]) && !empty($_FILES["imgUpload"]["name"]))) {
    if (checkExtension(pathinfo($_FILES["imgUpload"]["name"], PATHINFO_EXTENSION))) {
        if (!checkFileExists($_FILES["imgUpload"]["name"], $currentStoredImageName)) {
            if (file_exists(TARGET_DIR . $currentStoredImageName)) {
                unlink(TARGET_DIR . $currentStoredImageName);
            }
            if (move_uploaded_file($_FILES["imgUpload"]["tmp_name"], TARGET_DIR . $_FILES["imgUpload"]["name"])) {
                if (submitInformation(trim($_POST["title"]), trim($_POST["description"]), $_POST["date"], $_FILES["imgUpload"]["name"], trim($_POST["imgDescription"]))) {
                    displayInfoForm("success");
                    displayImageForm("success_upload");
                } else {
                    unlink('../../images/' . basename($_FILES["imgUpload"]["name"]));
                    displayInfoForm("fail_submit");
                    displayImageForm("fail_upload");
                }
            } else {
                displayInfoForm("");
                displayImageForm("fail_upload");
{
    echo sprintf( "Checked : %s / %s ; Total deletion : %s\n", $checkCount, $countRealOffset, $deletionCount);

    $selectionResults = $db->arrayQuery( sprintf(
        $selectionQuery,
        $offset,
        $limit
    ));
    $nonExistingHashs = array();

    foreach ( $selectionResults as $selectionResult )
    {
        $nameTrunk = $selectionResult['name_trunk'];
        $nameHash  = $selectionResult['name_hash'];

        if ( !checkFileExists($nameTrunk) )
            $nonExistingHashs[] = $nameHash;
    }

    $deletionCount+= deleteNonExisitingFiles($db, $nonExistingHashs);
    $checkCount   += count($selectionResults);

    usleep($sleepTime);

    $offset-= $limit;

    unset( $selectionResult, $nonExistingHashs );
}


Ejemplo n.º 5
0
function __autoload($class)
{
    $class = str_replace("_", "/", $class);
    $file = strtolower("{$class}.php");
    if ($p = checkFileExists($file, 'class')) {
        include $p;
    }
}
Ejemplo n.º 6
0
function includeFile($file)
{
    checkFileExists($file);
    require_once "default/header.php";
    include_once $file;
    require_once "default/footer.php";
    exit;
}
Ejemplo n.º 7
0
function newFolder()
{
    global $conn_id;
    global $lang_title_new_folder;
    global $lang_new_folder_name;
    global $lang_folder_exists;
    global $lang_folder_cant_make;
    // Set vars
    $vars = "&ftpAction=newFolder";
    $folder = trim(quotesUnescape($_POST["newFolder"]));
    if ($folder == "") {
        $title = $lang_title_new_folder;
        $width = 400;
        $height = 40;
        // Display pop-up
        displayPopupOpen(0, $width, $height, 0, $title);
        echo "<input type=\"text\" name=\"newFolder\" id=\"newFolder\" placeholder=\"" . $lang_new_folder_name . "\" onkeypress=\"if (event.keyCode==13){ processForm('" . $vars . "'); return false;}\">";
        displayPopupClose(0, $vars, 1);
    } else {
        // Check if folder exists
        if (checkFileExists("d", $folder, $_SESSION["dir_current"]) == 1) {
            $_SESSION["errors"][] = str_replace("[folder]", "<strong>" . $folder . "</strong>", $lang_folder_exists);
        } else {
            if (!ftp_mkdir($conn_id, $folder)) {
                $_SESSION["errors"][] = str_replace("[folder]", "<strong>" . $folder . "</strong>", $lang_folder_cant_make);
            }
        }
    }
}