Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * <pre>
- * MiraageLabs
- * Script for http://www.nulled.cc/showthread.php?t=214745
- * </pre>
- *
- * @author Mikhail 'miraage' Osher, vk.com/miraage
- */
- // -----------------------------------------------------------
- // ИНИЦИАЛИЗАЦИЯ
- // -----------------------------------------------------------
- /**
- * Файл с пинкодами
- */
- define('PIN_FILE', 'pincodes.txt');
- /**
- * Файл для блокировки сессии
- */
- define('LOCK_FILE', 'lock.tmp');
- /**
- * Количество "вынимаемых" пинкодов
- */
- define('NUM_PINS', 5);
- // -----------------------------------------------------------
- // ФУНКЦИИ
- // -----------------------------------------------------------
- /**
- * Блокирует сессию работы с файлом
- */
- function sessLock() {
- /* Файл существует - сессия открыта, закрываем доступ */
- if (file_exists(LOCK_FILE)) {
- return false;
- }
- /* Создаем в таком случае */
- if (fclose(fopen(LOCK_FILE, 'a+b'))) {
- return true;
- }
- /* Недостаточно прав для записи в каталог */
- sendOutput('no_write_perms');
- }
- /**
- * Снятие блокировки сессии
- */
- function sessUnlock() {
- /* В любом раскладе удаляем файл */
- unlink(LOCK_FILE);
- }
- /**
- * Записываем пинкоды
- */
- function writeData($pinCodes) {
- /* Открываем файл с блокировкой. Очищаем */
- $fd = fopen(PIN_FILE, 'a+b');
- flock($fd, LOCK_EX);
- ftruncate($fd, 0);
- /* Пишем данные */
- foreach ($pinCodes as $pin) {
- fwrite($fd, $pin);
- }
- /* Снимаем блокировку */
- flock($fd, LOCK_UN);
- fclose($fd);
- }
- /**
- * Вывод содержимого
- */
- function sendOutput($msg, $unlock = true) {
- if ($unlock == true){
- sessUnlock();
- }
- echo $msg;
- exit;
- }
- // -----------------------------------------------------------
- // ПРОГРАММА
- // -----------------------------------------------------------
- /* Проверяем возможность начать сессию */
- if (!sessLock()) {
- sendOutput('sess_locked', false);
- }
- /* Парсим файл */
- $pinCodes = preg_grep('#^\S#', file(PIN_FILE));
- /* Проверяем кол-во пинкодов */
- if (count($pinCodes) < NUM_PINS) {
- sendOutput('invalid_pin_num');
- }
- /* Берем нужное кол-во пинкодов */
- $selected = array_splice($pinCodes, 0, NUM_PINS);
- /* Сохраняем файлик */
- writeData($pinCodes);
- /* Выводим содержимое */
- sendOutput(implode(' ', $selected));
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement