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); } } } }
/** * Функция отправляет письма */ 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 ); }
function __autoload($class) { $class = str_replace("_", "/", $class); $file = strtolower("{$class}.php"); if ($p = checkFileExists($file, 'class')) { include $p; } }
function includeFile($file) { checkFileExists($file); require_once "default/header.php"; include_once $file; require_once "default/footer.php"; exit; }
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); } } } }