Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP считает файл папкой и пытаеться в него зайти 
:(
    Опции темы
Ddima
Дата 19.4.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 23.1.2006

Репутация: нет
Всего: нет



Люди, такой к вам вопрос:
У меня скрипт сканит по локальной сети компы.Он рекурсивно азаходит в каждую папку и просматривает содержимое. и все бы хорошо, но обнаружилась проблема: некоторые файлы( мной в частности обнаружен файл .ppt) почему то считает папками и пытаеться в них зайти. происходит слеюующее: он находит какой то вложенный в эту папку файл 1.jpg - считает его тоже папкой и снова в него заходит, потом снова и снова. Пока не зависает скрипт.
функции is_dir и filetype не помогают - он определяет файл как папку smile(. 
С чем это может быть связано и как это можно обойти? 
PM MAIL   Вверх
Ciber SLasH
Дата 19.4.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Функции is_dir, is_file — кэшируются. В начале всех этих операций поставь clearstatcache() 
PM   Вверх
Ddima
Дата 20.4.2006, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 23.1.2006

Репутация: нет
Всего: нет



не помогло (((
нашел еще один глючный файл - он сохранен в content.ie5. Это doc. название в формате : "/%D0%BF%D0%BB%D0%B0%D0 . . ." не открываеться не изменяеться имя, не удаляется. Такие файлы, как видимо есть почти на всех сканруемых машинах . . .
 
PM MAIL   Вверх
Ciber SLasH
Дата 20.4.2006, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Тогда проверяй так:
Код
if ((fileperms('<путь>') & 0x4000) == 0x4000) {    // директория

}
if ((fileperms('<путь>') & 0x8000) == 0x8000) {    // файл

}
 
PM   Вверх
Ddima
Дата 20.4.2006, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 23.1.2006

Репутация: нет
Всего: нет



Тоже не помогло
fileperms для этих файлов возвращает те же значения что и для папок(остальные права совпадают). может как то искусственно можно проверить, например по какому нибудь параметру, который есть у файлов и нет у папок или наоборот. 
PM MAIL   Вверх
Ciber SLasH
Дата 20.4.2006, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Может в архиве выложишь тестируемые файлы, чтобы можно было бы независимый эксперимент провести? 
PM   Вверх
Ddima
Дата 20.4.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 23.1.2006

Репутация: нет
Всего: нет



Это какие то глючные файлы. Я скопировал папку, содкржащую файл, на свою машину - они нормально стали открываться, и видятся как файлы. а на чужой машине, я конкретно этот файл не могу ни скопировать, не удалить - ни че с ним не могу сделать, даже свойства посмотреть.
 
PM MAIL   Вверх
Ciber SLasH
Дата 20.4.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Так это файлы типа ntuser.dat, к которым запрещён доступ даже на чтение? 
PM   Вверх
smartov
Дата 20.4.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



Наверное еще и винда 98-я.... 
PM MAIL   Вверх
Ddima
Дата 20.4.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 23.1.2006

Репутация: нет
Всего: нет



Винда 2000 sp4. 
подобные файлы встречаются на очень многих машинах - разные расширения. 

 

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  1.JPG 99,02 Kb
PM MAIL   Вверх
Ciber SLasH
Дата 20.4.2006, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Попробуй к имени файла перед проверкой применять функцию urldecode('<имя файла>'); 
PM   Вверх
Ddima
Дата 20.4.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 23.1.2006

Репутация: нет
Всего: нет



Ет как?
Он название если декодирует, то найти тогда такой файл не может 
PM MAIL   Вверх
Ciber SLasH
Дата 20.4.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(Ddima @  20.4.2006,  14:06 Найти цитируемый пост)
Он название если декодирует, то найти тогда такой файл не может

Тогда не знаю... 
PM   Вверх
Ddima
Дата 20.4.2006, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 23.1.2006

Репутация: нет
Всего: нет



все равно пасиба. 
 
PM MAIL   Вверх
Ciber SLasH
Дата 20.4.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



А что, если запустить через PHP команду DOS dir /a и парсить вывод этой команды. А имена проверять на символ процента (с процентами ведь глюки идут? это вобще-то запрещённые символы, из-за этого может и быть трабла), если встретили в имени процент, запускаем dir /a и смотрим, что нам эта команда говорит на этом файле.

Покажи вывод dir /a в том каталоге.   

Это сообщение отредактировал(а) Ciber SLasH - 20.4.2006, 14:35
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0899 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.