Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - D1g174LM4n14c

Страницы: [1] 2 3 ... 10
1
Смысл последнего слеша в пути...
Указание на то, что путь обращается к каталогу а не к файлу? Но, во-первых, ФС знает, где у неё файл, а где каталог. Во-вторых, файлов с таким-же именем как каталог (на том-же уровне дерева ФС) быть не может - недопустимо ФС (может, есть и исключения, конечно...).
Но для меня до конца не ясна все же суть завершающего слеша в пути, указывающего на каталог...
С другой стороны, это зависит от внутренней реализации окружения в котором вы работаете... Но какой смысл в путях к каталогам, в этом случае, без слешей? Лишние проверки...

В общем, хочу обсудить здесь смысл последнего слеша в пути... Кто мне что может сказать по этому поводу?

Спасибо.

2
PHP / Интересная Задача
« : 29 Апреля 2004, 15:04:41 »
Макс
ты прав. я проверил... функция не глупая)))
я поначалу думал что она смотрит на пути как на строки, а не как на пути))))))) :D

3
PHP / Интересная Задача
« : 29 Апреля 2004, 14:22:08 »
а вот вопросик возник, мож кто сталкивался...
мне нужно написать рег.выр. для нахождения ссылок на директории уровнем выше (../)...
перл-совместимое...
сложность не в нахождении двух точек и слеша, а втом что имена директорий также могут иметь точки в себе, + слеши это опциональный символ... он может стоять после .. или нет (если .. в конце пути)... вот столько всего, блин..
а просто запретить точки в путях - значит запретить какие-то директории (вполне возможно)...

4
PHP / Интересная Задача
« : 29 Апреля 2004, 13:51:28 »
запрет для того, чтобы никто не ввел руками path типа ../../
и не вылез за пределы base директории...

5
PHP / Интересная Задача
« : 29 Апреля 2004, 12:40:27 »
вот цикл как раз для избежания запрета двоеточий =)
хотя если они не столь важны - то, естественно, их лучше запретить =)
мне просто интересно было, как кто подойдет к вышеизложенной задаче ;)

6
PHP / Интересная Задача
« : 29 Апреля 2004, 10:51:51 »
Про "мусор" в путях, чтобы вы не ломали голову, кто не понял - это в данном случае подразумевает пути типа /dir1/dir2/../dir3/. Следовательно, чать пути dir2/../ - лишняя... вот мы и удаляем ненужное :)

7
PHP / Интересная Задача
« : 29 Апреля 2004, 10:49:03 »
RomikChef
open_base_dir - это что? =))
я такого не нашел))

Макс
1. Это не подходит. realpath вычисляет результат относительно текущей директории.

2. Тоже вариант. Надо подумать... Может и пожертвую точками))

-----

А вот мой вариант:

   
// разбиваем $_GET[\'path\'] на составляющие
   // и удаляем пустые и \'.\' элементы
   
$path array_diff(explode(\'/\', $_GET[\'path\']), array(\'\', \'.\'));
   $i = 0; // "смещение" от базовой дирекории. положительное - вниз. отрицательное - вверх
   foreach ($path as $k => $v)
   {
      if ($v == \'..\')
      {
         --$i;
         // если вышли за пределы базовой директории...
         if ($i < 0) { $path = \'\'; break; }
         // иначе удаляем два элемента (.. и тот что перед ним).
         // тем самым чистим от мусора пути
         else { unset($path[$k], $path[$k-1]); }
      }
      else ++$i;
   }
   $path = (empty($path) ? \'\' : implode(\'/\', $path).\'/\');

8
PHP / Интересная Задача
« : 28 Апреля 2004, 14:33:25 »
Есть основная директория, в которой разрешено передвигаться пользователям где угодно. Но выше залезть нельзя. Нужно защитить это программным путем.

Скажем, имеем базовый путь

$base 
= \'/www/home/path/dir/\';


а путь внутри этого каталога приходит к нам вот так

$path 
$_GET[\'path\'];


нужно сделать так, чтобы при написании ?path=../
юзер не смог попасть выше базовой директории.
а также надо оставлять юзеру "красивые" пути. То есть, если он пройдется сначала в папку dir1, потом dir2, затем вверх ../ и в папку dir3, снова наверх ../ ТО путь должен быть

$path 
= \'dir1/\';


а не

$path 
= \'dir1/dir2/../dir3/../\';


вот в общем-то и все ;)

интересно, кто как решит...

9
PHP / Решение проблемы урезания данных!
« : 07 Февраля 2004, 18:35:40 »
RomikChef
Ты без грубости не можешь!
И запомни - я всегда знаю что я делаю!!!
Прощай.

10
PHP / Решение проблемы урезания данных!
« : 07 Февраля 2004, 17:18:40 »
Цитировать
RomikChef:
если они тебе нужны в другом месте - то и ДЕЛАЙ ИХ В ТОМ МЕСТЕ! это же очевидно.
делать надо там, где надо.


а если я вывожу кучу новостей на страницу?
к каждой при каждой генерации странице применять htmlspecialchars??? зачем же так убивать время и ресурсы?

Цитировать
RomikChef:
Эта цифра настолько микроскопическая, что я вообще поражаюсь, как она тебе в голву могла придти.

а я про все думаю. даже про самое мелкое...

11
PHP / Решение проблемы урезания данных!
« : 07 Февраля 2004, 16:40:53 »
1. Не надо портить...
А если просто необходимо htmlspecialchars применить к этим данным? Как в этом случае поступать?

2. В С++ strlen начиная с первого символа строки, проходит всю строку увеличивая указатель и таким образом считает колв-во символов. Поэтому эта ф-ция в С++ довольно "тяжелая".

А в PHP может быть strlen реализована по-другому. Например, строка на уровне кода интерпретатора уже описана с длиной или может длина вычисляется как разница между адресом последнего символа строки и первого... Куча вариантов. Вот тебе и разница...

12
PHP / Решение проблемы урезания данных!
« : 07 Февраля 2004, 16:09:40 »
Хотелоь бы услышать мнение по этому поводу.

Пример следующий:

Есть поле в БД типа TEXT (max. 65535 bytes).
Есть скрипт добавляющий данные в БД.
Положим, на стороне клиента есть соответствующее ограничение на длину данных. Но скрипт при получении данных и перед записью их в БД применят, допустим, htmlspecialchars к этим данных. В результате может получиться так, что юзер отправит данных 65535 байт, а htmlspecialchars расширит их кол-во до какого-то большего размера. Предугадать или вычислить эту дельту для оставления запаса места в БД невозможно. Как тогда поступать?

Вариант: после htmlspecialshars вычислить длину данных и если она превышает лимит - выдать ошибку юзеру и данные не добавлять, пока проблема не будет решена.

Но если в PHP ф-ция strlen реализована также как в С++ - то это будет тормозно. Кто-то знает?

Ваши мнения?

13
PHP / Сессии, куки и авторизация
« : 05 Февраля 2004, 15:44:20 »
[OFF]Меня за**ало что ты мои сообщения трешь напостой без пояснений. Я ведь дело говорю! И про кукисы, и про сессии, и даже про хранение данных на форуме (тема "Проблемы с написанием собственного форума"). ОБЪЯСНИ![/OFF]

14
PHP / Location меняет реферрер?
« : 05 Февраля 2004, 10:49:51 »
Интересный вопрос. Это зависит от браузера. Мне кажется что, например, IE получив ответ HTTP 200 OK и Location: google.com от redirect.php то на гугол.ком он и отправит redirect.php как referrera...

15
PHP / Работа с картинками
« : 04 Февраля 2004, 13:22:46 »

header
(\'Pragma: no-cache\');
header(\'Catch-Control: no-cache, must-revalidate\');


уже незнаю :)

Страницы: [1] 2 3 ... 10