Реклама на сайте Advertise with us

Проверка изменения удаленного файла из своего php скрипта

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 10.05.04
Сообщения: 419
Рейтинг: 191

Ссылка на сообщениеДобавлено: 26/11/04 в 17:14       Ответить с цитатойцитата 

По выводимому содержимому все понятно - откываешь файл и считываешь в строку длина строки + контрольная сумма и фиг ее злобный вебмастер изменит так чтобы я не заметил, а изменеие его скрипта редиректа-то как отследить? ну хоть при наличии прямой ссылки на файл можно вроде бы получить дату модификации, но насколько я понял сервер не спешит делиться такой инфой. или не заморачиваться?
А вообще вопрос сводится к возможности определить дату модификации файла на удаленном сервереicon_smile.gif.
Спасибо, что выслушали icon_smile.gif

0
 



С нами с 14.07.04
Сообщения: 221
Рейтинг: 59

Ссылка на сообщениеДобавлено: 26/11/04 в 21:00       Ответить с цитатойцитата 

Открывай файл через сокет и сервер тебе пришлет строку "Last-Modified: "нужная тебе дата".
Для открытия файла через сокет используй этот класс http://awm.all-sex-links.com/os_url_parser.htm.

1
 



С нами с 10.05.04
Сообщения: 419
Рейтинг: 191

Ссылка на сообщениеДобавлено: 27/11/04 в 09:18       Ответить с цитатойцитата 

vitaminxxx: спасибо за дельный совет

0
 



С нами с 01.10.03
Сообщения: 751
Рейтинг: 318

Ссылка на сообщениеДобавлено: 27/11/04 в 09:52       Ответить с цитатойцитата 

не многие сервера спешат отдать этот заголовок, большинство молчит
заставить отдать - нельзя
так что толку 0, делай мд5 и всё

Лучший Хостинг для CJ сайтов!

1
 



С нами с 10.05.04
Сообщения: 419
Рейтинг: 191

Ссылка на сообщениеДобавлено: 27/11/04 в 10:59       Ответить с цитатойцитата 

Jam: может тогда уж crc32 ? в данном случае логичнее.

а вообще я был бы рад если кто-нибудь еще выскажет свое мнение

0
 



С нами с 01.10.03
Сообщения: 751
Рейтинг: 318

Ссылка на сообщениеДобавлено: 27/11/04 в 11:19       Ответить с цитатойцитата 

почему логичнее?
вот например md5_file (string filename)
спец. функция для проверки целостности файла
для строки просто md5 если больше неравится можно crc32 но разницы я не вижу

Лучший Хостинг для CJ сайтов!

1
 



С нами с 10.05.04
Сообщения: 419
Рейтинг: 191

Ссылка на сообщениеДобавлено: 27/11/04 в 11:27       Ответить с цитатойцитата 

но если функции md5_file передается строка с именем файла, то как мы можем работать с файлом, который находится на другом сервере? т.е. придется считывать содержимое, а потом остается md5() или crc32() ? Или возможно натравить на удаленный файл?

0
 



С нами с 01.10.03
Сообщения: 751
Рейтинг: 318

Ссылка на сообщениеДобавлено: 27/11/04 в 11:47       Ответить с цитатойцитата 

Цитата:
Или возможно натравить на удаленный файл

проверил, невозможно, только на локальный

Цитата:
т.е. придется считывать содержимое, а потом остается md5() или crc32()

так точно

Лучший Хостинг для CJ сайтов!

1
 



С нами с 10.05.04
Сообщения: 419
Рейтинг: 191

Ссылка на сообщениеДобавлено: 27/11/04 в 12:01       Ответить с цитатойцитата 

Jam писал:
проверил, невозможно, только на локальный

я тоже, только подумал а не криворук ли я icon_smile.gif

0
 



С нами с 01.10.03
Сообщения: 751
Рейтинг: 318

Ссылка на сообщениеДобавлено: 27/11/04 в 12:14       Ответить с цитатойцитата 

foma писал:
я тоже, только подумал а не криворук ли я icon_smile.gif

в данном случае невозможно назвать входной поток файлом, так как у него отсутсвуют необходимые атрибуты
из сети мы получаем не file а string

Лучший Хостинг для CJ сайтов!

1
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 27/11/04 в 23:36       Ответить с цитатойцитата 

Jam писал:
не многие сервера спешат отдать этот заголовок, большинство молчит
заставить отдать - нельзя


Так запрос HTTP 1.1 надо делать, а не 1.0. Last-Modified прописан в RFC 2616 (спецификация HTTP 1.1) как стандартный хедер. И если нужно только дату проверить, то достаточно запроса HEAD

Код:

HEAD /location.html HTTP/1.1


И лови Last-Modified. А можно не сокетом пользоваться, а модулем curl из php, если установлен, он удобнее все же.

1
 

Друг зайцев

С нами с 25.01.03
Сообщения: 898
Рейтинг: 115

Ссылка на сообщениеДобавлено: 28/11/04 в 03:04       Ответить с цитатойцитата 

я бы не экономил и каждый раз бы читал весь файл и считал бы контрольную суму :)
на мой взгляд так надёжнее.

http://moblave.com/ - хорошо конвертим русские мобилки по белому

1
 



С нами с 01.10.03
Сообщения: 751
Рейтинг: 318

Ссылка на сообщениеДобавлено: 28/11/04 в 13:39       Ответить с цитатойцитата 

Dr.Syshalt писал:
Так запрос HTTP 1.1 надо делать, а не 1.0. Last-Modified прописан в RFC 2616 (спецификация HTTP 1.1) как стандартный хедер. И если нужно только дату проверить, то достаточно запроса HEAD
Код:

HEAD /location.html HTTP/1.1

И лови Last-Modified. А можно не сокетом пользоваться, а модулем curl из php, если установлен, он удобнее все же.



Код:

$fp = fsockopen ("mail.ru", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "HEAD / HTTP/1.1\r\nHost: mail.ru\r\n\r\n");
    while (!feof($fp)) {
        echo fgets ($fp,128);
    }
    fclose ($fp);
}



HTTP/1.1 200 OK
Date: Sun, 28 Nov 2004 10:37:34 GMT
Server: 3WservRT 2001, VxWorks 5.4
Set-Cookie: Mpopl=615002419; expires=Sun, 28 Nov 2004 10:52:34 GMT; path=/
Set-Cookie: mrcu=794A41A9AA6E4FD7E0A22199C452; expires=Tue, 28 Nov 2006 10:37:34 GMT; path=/
Connection: close
Content-Type: text/html; charset=windows-1251
Vary: user-agent

Нету Last-Modified
не заставишь отдать

Лучший Хостинг для CJ сайтов!

1
 

Best4U.Biz

С нами с 21.02.04
Сообщения: 1252
Рейтинг: 1441

Ссылка на сообщениеДобавлено: 28/11/04 в 13:48       Ответить с цитатойцитата 

Jam писал:
Нету Last-Modified
не заставишь отдать


Если я правильно помню- это означает динамическую страницу (shtml, php, asp и т.д.). Т.е. для проверки ГАЛЕРЕИ - уже непорядок.

Могу ошибаться.

PPC - не думай о конвертации | Pay Per Lead/Action - то, во что эволюционируют ППС | лучший хостинг

1
 

Снимаю. Порчу.

С нами с 25.12.99
Сообщения: 1234
Рейтинг: 786

Ссылка на сообщениеДобавлено: 28/11/04 в 13:59       Ответить с цитатойцитата 

Sams писал:
Если я правильно помню- это означает динамическую страницу (shtml, php, asp и т.д.). Т.е. для проверки ГАЛЕРЕИ - уже непорядок.
Могу ошибаться.

точно, динамические страницы по дефолту не отдают Last-Modified

1
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 28/11/04 в 17:51       Ответить с цитатойцитата 

Цитата:

А вообще вопрос сводится к возможности определить дату модификации файла на удаленном сервере


Вот на это ответ я дал. Если другие вопросы есть - пусть их формулирует.

1
 



С нами с 14.07.04
Сообщения: 221
Рейтинг: 59

Ссылка на сообщениеДобавлено: 28/11/04 в 21:56       Ответить с цитатойцитата 

Jam,
вообще, топикстартер поставил вопрос: как узнать дату последней модификации? А узнать ее через сравнение контрольных сумм используя MD5 (или путем подсчета количества символов в теле документа) не возможно. Только через Last_Modified.
Контрольные же суммы можно получать у отвечающего сервера через заголовок Content-MD5, а не считать их самому. Точно также можно получать Content-Length и не считать количество символов.

foma, почитай RFC 2068, там целый раздел вопросам кэширования посвящен.

1
 



С нами с 10.05.04
Сообщения: 419
Рейтинг: 191

Ссылка на сообщениеДобавлено: 30/11/04 в 09:51       Ответить с цитатойцитата 

всем спасибо, буду читать, осознавать, пробовать. icon_smile.gif

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »