Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   помогите с php (http://forum.oszone.net/showthread.php?t=114806)

morgan1991 19-08-2008 19:33 878923

помогите с php
 
Помогите ктонить плиз.
Нужно на php написать такой код, чтобы он проверял не изменился ли файл по размекру не удалился и т.д.
Короче чтобы нельзя было изменить файл или удалить его файл будет находится на хостинге на котором каждый может записывать файлы и удалять любые другие.

Igor_I 19-08-2008 19:56 878938

Ну допустим - изменился или удалился. Что должен сделать скрипт?

morgan1991 19-08-2008 19:58 878939

Igor_I, скрипт должен перезакачать файл заново если с ним чтото стало.

Igor_I 19-08-2008 21:55 879038

Компьютер выполнят только то, что скажет человек, а он должен предусмотреть все случаи.
Код примерно такой

PHP код:

$filename '/path/to/foo.txt';

if (
file_exists($filename)) {
    echo 
"The file $filename exists";
} else {
    echo 
"The file $filename does not exist";

    
$somecontent "Добавить это к файлу\n";

    
// Вначале убедимся, что файл существует и доступен для записи.
    
if (is_writable($filename)) {


        if (!
$handle fopen($filename'w')) {
            echo 
"Не могу открыть файл ($filename)";
            exit;
        }

        
// Записываем $somecontent в наш открытый файл.
        
if (fwrite($handle$somecontent) === FALSE) {
            echo 
"Не могу произвести запись в файл ($filename)";
            exit;
        }    
    
        echo 
"Ура! Записали ($somecontent) в файл ($filename)";
    
        
fclose($handle);

    } else {
        echo 
"Файл $filename недоступен для записи";
    }



morgan1991 19-08-2008 22:12 879057

Igor_I, объясните плиз, скрипт видит есть ли файл на сервере или нет, а мне нужно чтобы он с сервера закачивал файл на ip в котором разрешено добавлять файлы без всяких паролей допустим так \\127.0.0.1\new\ когда на сервер закачается файл то чтобы он постоянно проверял не изменился ли файл? Можно так? Или нужно будет постоянно заходить на страницу php чтобы скрипт выполнял проверку?
А этот скрипт выполняет только проверку. Есть ли файл или нет.

Igor_I 21-08-2008 20:03 880711

Скрипт проверки забиваем в nncron или в планоровщик.
Но работоспособность скрипта я не проверял. Сейчас может попробуем.

morgan1991 21-08-2008 20:09 880716

Какой
Цитата:

Цитата Igor_I
nncron или в планоровщик »

?????
Мне нужно чтобы работало на сервере и запрещало удалять файл или изменять, который лежит на другом сервере на другом сервере.

Igor_I 21-08-2008 20:42 880738

Запретить удалить файл могут только права на этот файл, то есть отсутствие прав на удаление файла. В твоем случае этого нет, а значит только проверка на наличие файла, есть он или нет.

Igor_I 21-08-2008 21:48 880786

PHP код:

<?php
$filename 
'\\\igorserver\tmp\ipfw.txt'
$source 'C:\Program Files\Apache Group\Apache\htdocs\ipfw.txt';
$newfile '\\\igorserver\tmp\ipfw.txt'

if (
file_exists($filename)) { 
    echo 
"Файл $filename еще на месте. \n"
    
} else { 
    echo 
"Файл $filename уже удален. \n"
    
    if (
file_exists($source)) { 
        echo 
"Исходный файл $source еще на месте. Можно его скопировать."
        
        
$copy file_get_contents ($source);
        
file_put_contents ($newfile$copy);
    
    } else { 
        echo 
"Исходного файла $source нету!!!. Что делать дальше - не знаю!!!"
    }
}
?>


morgan1991 21-08-2008 22:37 880818

Чтото не работает:
Файл 1\1.txt уже удален. Исходный файл 1.txt еще на месте. Можно его скопировать.
Fatal error: Call to undefined function: file_put_contents() in p:\home\phpbb\www\index.php on line 16

Цитата:

<?php
$filename = '1\1.txt';
$source = '1.txt';
$newfile = '1\1.txt';

if (file_exists($filename)) {
echo "Файл $filename еще на месте. \n";

} else {
echo "Файл $filename уже удален. \n";

if (file_exists($source)) {
echo "Исходный файл $source еще на месте. Можно его скопировать.";

$copy = file_get_contents ($source);
file_put_contents ($newfile, $copy);

} else {
echo "Исходного файла $source нету!!!. Что делать дальше - не знаю!!!";
}
}
?>

Igor_I 21-08-2008 23:34 880868

Я решил что 5 версия есть у всех. Наверно глупо просить обновить версию PHP.

PHP код:

<?php
$filename 
'\\\igorserver\tmp\ipfw.txt'
$source 'C:\Program Files\Apache Group\Apache\htdocs\ipfw.txt';
$newfile '\\\igorserver\tmp\ipfw.txt'

if (
file_exists($filename)) { 
    echo 
"Файл $filename еще на месте. \n"
    
} else { 
    echo 
"Файл $filename уже удален. \n"
    
    if (
file_exists($source)) { 
        echo 
"Исходный файл $source еще на месте. Можно его скопировать."
        
        
$copy file_get_contents ($source);
        
        if (!
$handle fopen($filename'a')) {
             echo 
"Не могу открыть файл ( $filename )";
             exit;
        }

        
// Записываем $somecontent в наш открытый файл.
        
if (fwrite($handle$copy) === FALSE) {
            echo 
"Не могу произвести запись в файл ( $filename )";
            exit;
        }
        
        echo 
"Ура! Записали в файл ( $filename )";
        
        
fclose($handle);
    
    } else { 
        echo 
"Исходного файла $source нету!!!. Что делать дальше - не знаю!!!"
    }
}
?>


morgan1991 22-08-2008 01:54 880941

СПС вот теперь всё норм, скажите а нельзя зделать так чтобы скрипт постоянно сам проверял есть ли фай , а не только тогда когда я захожу на страницу??

Igor_I 22-08-2008 20:14 881574

Включаем соображалку.
Ответ был уже дан.

morgan1991 25-08-2008 14:00 883213

Igor_I, я имел ввиду чтобы скрипт работал сам даже если у меня выключен компьютер, на удалённом сервере.
Можно сделать так?

Igor_I 25-08-2008 19:38 883575

morgan1991, для начала - http://phpfaq.ru/na_tanke.
А теперь вопрос, на каком сервере?

Igor_I 25-08-2008 19:55 883592

Тебе нужен сервер на котором есть PHP.

morgan1991 26-08-2008 02:31 883919

ну допустим я кину файлик (этот) на бесплатный хостинг поддерживающий php и все навороты
можно ли сделать чтобы скрипт работал сам без помощи автоматизаторов планировщиков????

XCodeR 26-08-2008 12:47 884106

morgan1991, нет. Единственное, что вы можете сделать это проinclude'ить его во все страницы Вашего сайта.

morgan1991 26-08-2008 13:06 884119

СПС всем кто помогал


Время: 11:57.

Время: 11:57.
© OSzone.net 2001-