Advertisement
Guest User

miraage

a guest
Aug 16th, 2011
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.81 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * <pre>
  5.  * MiraageLabs
  6.  * Script for http://www.nulled.cc/showthread.php?t=214745
  7.  * </pre>
  8.  *
  9.  * @author      Mikhail 'miraage' Osher, vk.com/miraage
  10.  */
  11.  
  12. // -----------------------------------------------------------
  13. // ИНИЦИАЛИЗАЦИЯ
  14. // -----------------------------------------------------------
  15.  
  16. /**
  17.  * Файл с пинкодами
  18.  */
  19. define('PIN_FILE', 'pincodes.txt');
  20.  
  21. /**
  22.  * Файл для блокировки сессии
  23.  */
  24. define('LOCK_FILE', 'lock.tmp');
  25.  
  26. /**
  27.  * Количество "вынимаемых" пинкодов
  28.  */
  29. define('NUM_PINS', 5);
  30.  
  31. // -----------------------------------------------------------
  32. // ФУНКЦИИ
  33. // -----------------------------------------------------------
  34.  
  35. /**
  36.  * Блокирует сессию работы с файлом
  37.  */
  38. function sessLock() {
  39.     /* Файл существует - сессия открыта, закрываем доступ */
  40.     if (file_exists(LOCK_FILE)) {
  41.         return false;
  42.     }
  43.  
  44.     /* Создаем в таком случае */
  45.     if (fclose(fopen(LOCK_FILE, 'a+b'))) {
  46.         return true;
  47.     }
  48.  
  49.     /* Недостаточно прав для записи в каталог */
  50.     sendOutput('no_write_perms');
  51. }
  52.  
  53. /**
  54.  * Снятие блокировки сессии
  55.  */
  56. function sessUnlock() {
  57.     /* В любом раскладе удаляем файл */
  58.     unlink(LOCK_FILE);
  59. }
  60.  
  61. /**
  62.  * Записываем пинкоды
  63.  */
  64. function writeData($pinCodes) {
  65.     /* Открываем файл с блокировкой. Очищаем */
  66.     $fd = fopen(PIN_FILE, 'a+b');
  67.     flock($fd, LOCK_EX);
  68.     ftruncate($fd, 0);
  69.  
  70.     /* Пишем данные */
  71.     foreach ($pinCodes as $pin) {
  72.         fwrite($fd, $pin);
  73.     }
  74.  
  75.     /* Снимаем блокировку */
  76.     flock($fd, LOCK_UN);
  77.     fclose($fd);
  78. }
  79.  
  80. /**
  81.  * Вывод содержимого
  82.  */
  83. function sendOutput($msg, $unlock = true) {
  84.     if ($unlock == true){
  85.         sessUnlock();
  86.     }
  87.  
  88.     echo $msg;
  89.     exit;
  90. }
  91.  
  92. // -----------------------------------------------------------
  93. // ПРОГРАММА
  94. // -----------------------------------------------------------
  95.  
  96. /* Проверяем возможность начать сессию */
  97. if (!sessLock()) {
  98.     sendOutput('sess_locked', false);
  99. }
  100.  
  101. /* Парсим файл */
  102. $pinCodes = preg_grep('#^\S#', file(PIN_FILE));
  103.  
  104. /* Проверяем кол-во пинкодов */
  105. if (count($pinCodes) < NUM_PINS) {
  106.     sendOutput('invalid_pin_num');
  107. }
  108.  
  109. /* Берем нужное кол-во пинкодов */
  110. $selected = array_splice($pinCodes, 0, NUM_PINS);
  111.  
  112. /* Сохраняем файлик */
  113. writeData($pinCodes);
  114.  
  115. /* Выводим содержимое */
  116. sendOutput(implode(' ', $selected));
  117.  
  118. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement