| |
|
|
| | По непонятным мне причинам заблокировался файлик, где храняться некоторые данные, кароче БД.
Функция пишет: 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']);
}
}
}
|
Всё всегда работает, но тут почему-то файл заблокировался и уже второй день скрипт не выполняеться :( Что можно сделать НАРОД!
Однажды такое было, потом само исправилось, но всё таки интерестна причина возникновения такой лажи :( | |
| |
|
|
| |
|
|
| |
для: Proger
(10.06.2007 в 20:46)
| | | вручную chmod | |
| |
|
|
| |
|
|
| |
для: bronenos
(10.06.2007 в 20:53)
| | | Стоят те что требует хостер | |
| |
|
|
| |
|
|
| |
для: Proger
(10.06.2007 в 20:57)
| | | а что он требует? | |
| |
|
|
| |
|
|
| |
для: Trianon
(10.06.2007 в 21:51)
| | | 604, в скрипте написал 777 чтобы не было вопросов ;)
604 - это на все пхп файлы и усё работает, но почему файл "сдох" и не пашет = не понимаю :( Главное на чтение открываеться а на запись тоже, но созранить данные нема :( | |
| |
|
|
| |
|
|
| |
для: Proger
(10.06.2007 в 21:53)
| | | 604 - требование хостера на php-файл . А не на файл данных, который Вы пытаетесь писать, так? | |
| |
|
|
| |
автор: Proger (пароль забыл) (10.06.2007 в 23:24) |
|
| |
для: Trianon
(10.06.2007 в 22:31)
| | | ОН требует на все файлы и файлы php 604, а на директории 705 =) | |
| |
|
|
| |
|
|
| |
для: Proger (пароль забыл)
(10.06.2007 в 23:24)
| | | ОТВЕТЬТЕ кто нить :( | |
| |
|
|
| |
|
|
| |
для: Proger (пароль забыл)
(10.06.2007 в 23:24)
| | | Если он требует 604 вообще на все файлы и 705 на каталоги, скриптом Вы с файлами работать не сможете. Как минимум, если UID процесса php не соответствует UID владельца эккаунта. | |
| |
|
|
| |
|
|
| |
для: Trianon
(11.06.2007 в 21:47)
| | | Ну работает же и усё намано! У них там свои замарочки на хосте, я одного всё файлы записыфваються и открываються, а только 1 не хочет записывать и пишет что залочен :( Права везде одинаковые, пробовал файл удалять, перезаливать = 0 эффекта :(
Если всё остальное работать должно, то и тут должно работать! Вопрос только в том как "разблокировать" файл? | |
| |
|
|
| |
|
|
| |
для: Proger
(11.06.2007 в 22:05)
| | | попросите хостера его удалить. | |
| |
|
|