Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: URL регулярные выражения
 
 автор: Lenux   (28.08.2005 в 10:46)   письмо автору
 
 

Вообщем такая проблема есть, строка: str/str2, всё бы хорошо, да только бы не получилось так:
str/str2/...////, как можно отловить все ..//?
Если через рег. выражение, то можете написать его плз:)

   
 
 автор: cheops   (28.08.2005 в 11:32)   письмо автору
 
   для: Lenux   (28.08.2005 в 10:46)
 

Не очень понятно, нужно отлавливать именно str/str2/...//// или str/str2/.../../../../ или str/str2///// и что делать в случае, если вхождение найдено, вырезать часть пути или останавливать программу?

   
 
 автор: Lenux   (28.08.2005 в 12:07)   письмо автору
 
   для: cheops   (28.08.2005 в 11:32)
 

Ситуация такая для нормального функционирования скрипта, идёт путь:
&dir=str/str2, может быть нормальным, Не нормально:
$dir=str/str2/...////././../, и вот надо както убрать "лишнее" ...////./ и т.д.
Что бы юзер не мог сменить папку стояющую выше str/str2, улавливаешь?

Допустим есть папки:
str вней str2, нормально, что бы юзать папку str2 надо ввести, наподобии: &dir=str/str2. Но есть же в России Advanced User, которые например побалуются: &dir=str/str2/../ и попадут выше, но так же будет работать и ....///. Улавливаешь?
Почему то у меня не получилось отлавливать это через
$dir=eregi_replace('^\.(.\/){1,}\$', '', $dir);

   
 
 автор: cheops   (28.08.2005 в 12:13)   письмо автору
 
   для: Lenux   (28.08.2005 в 12:07)
 

В строке, которой будет производится замена, есть ещё что-нибудь, кроме "&dir=str/str2/...////././../" - т.е. имеется ли http:// и т.п. или строка начинается с &?

   
 
 автор: Sfinks   (28.08.2005 в 13:05)   письмо автору
 
   для: cheops   (28.08.2005 в 12:13)
 

Выглядит конечно несколько многоэтажно, но результат верный:
<?php
  $str 
"str/str2/...////././../";
  if(
substr_count($str,"/") > 1)
    
$str substr($str,0,strpos($str,"/",strpos($str,"/")+1));
  echo 
$str;
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования