Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Lock файла :(
 
 автор: Proger   (10.06.2007 в 20:46)   письмо автору
 
 

По непонятным мне причинам заблокировался файлик, где храняться некоторые данные, кароче БД.
Функция пишет: Access to file file.dat blocked! Try again later

Функция которая совершает запрос к файлу:


function Get_File_Data(&$fp,$filename,$newfile = TRUE) {
        if ($newfile === TRUE) {
            fclose(fopen($filename,"a+"));
        }
        @chmod($filename,777);
        $fp = fopen($filename,'r+');
        lock_file($fp,$filename,LOCK_EX);
        $filesize = filesize($filename);
        $filesize = ($filesize ===0) ? 1:$filesize-8;
        fseek($fp,8);
        $str = fread($fp,$filesize);
        return (!empty($str))?unserialize($str):array();
}

//+ к ней есть вызванная - вот она:

function lock_file(&$file,$filename,$mode = LOCK_SH) {
        if (preg_match('/[c-z]:\\\.*/i', $_SERVER['PATH'])) return;
          $i = 0;
          while (!flock($file,$mode+LOCK_NB)) {
              sleep(1);
              $i++;
              if ($i>=10) {
                  @fclose($file);
                $_POST['inpost'] = (isset($_POST['inpost']))? '<br>You may save your message:<br>'.htmlspecialchars($_POST['inpost']):'';
                  die('Access to file '.$filename.' blocked! Try again later'.$_POST['inpost']);
              }
          }
}



Всё всегда работает, но тут почему-то файл заблокировался и уже второй день скрипт не выполняеться :( Что можно сделать НАРОД!

Однажды такое было, потом само исправилось, но всё таки интерестна причина возникновения такой лажи :(

   
 
 автор: bronenos   (10.06.2007 в 20:53)   письмо автору
 
   для: Proger   (10.06.2007 в 20:46)
 

вручную chmod

   
 
 автор: Proger   (10.06.2007 в 20:57)   письмо автору
 
   для: bronenos   (10.06.2007 в 20:53)
 

Стоят те что требует хостер

   
 
 автор: Trianon   (10.06.2007 в 21:51)   письмо автору
 
   для: Proger   (10.06.2007 в 20:57)
 

а что он требует?

   
 
 автор: Proger   (10.06.2007 в 21:53)   письмо автору
 
   для: Trianon   (10.06.2007 в 21:51)
 

604, в скрипте написал 777 чтобы не было вопросов ;)

604 - это на все пхп файлы и усё работает, но почему файл "сдох" и не пашет = не понимаю :( Главное на чтение открываеться а на запись тоже, но созранить данные нема :(

   
 
 автор: Trianon   (10.06.2007 в 22:31)   письмо автору
 
   для: Proger   (10.06.2007 в 21:53)
 

604 - требование хостера на php-файл . А не на файл данных, который Вы пытаетесь писать, так?

   
 
 автор: Proger (пароль забыл)   (10.06.2007 в 23:24)
 
   для: Trianon   (10.06.2007 в 22:31)
 

ОН требует на все файлы и файлы php 604, а на директории 705 =)

   
 
 автор: Proger   (11.06.2007 в 19:38)   письмо автору
 
   для: Proger (пароль забыл)   (10.06.2007 в 23:24)
 

ОТВЕТЬТЕ кто нить :(

   
 
 автор: Trianon   (11.06.2007 в 21:47)   письмо автору
 
   для: Proger (пароль забыл)   (10.06.2007 в 23:24)
 

Если он требует 604 вообще на все файлы и 705 на каталоги, скриптом Вы с файлами работать не сможете. Как минимум, если UID процесса php не соответствует UID владельца эккаунта.

   
 
 автор: Proger   (11.06.2007 в 22:05)   письмо автору
 
   для: Trianon   (11.06.2007 в 21:47)
 

Ну работает же и усё намано! У них там свои замарочки на хосте, я одного всё файлы записыфваються и открываються, а только 1 не хочет записывать и пишет что залочен :( Права везде одинаковые, пробовал файл удалять, перезаливать = 0 эффекта :(

Если всё остальное работать должно, то и тут должно работать! Вопрос только в том как "разблокировать" файл?

   
 
 автор: Trianon   (11.06.2007 в 22:07)   письмо автору
 
   для: Proger   (11.06.2007 в 22:05)
 

попросите хостера его удалить.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования