Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Фильтрация имён файлов
Форумы портала PHP.SU » PHP » Регулярные выражения » Фильтрация имён файлов

Страниц (1): [1]
 

1. kuzya - 17 Марта, 2007 - 13:58:43 - перейти к сообщению
Такая ситуация - фильтрую имена загружаемых файлов по такому коду:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. $name=$_GET['name'];
  3. if( ini_get("magic_quotes_gpc") ) $name=stripslashes($name);
  4. $name=eregi_replace("[^a-zA-z0-9_-.]","",$name);
  5. print $name;
  6.  


Предполагается что все символы кроме алфавитных, цифр, знака подчёркивания, тирэ и точки будут заменятся ни ничего. Но почему то знак "-" то же фильтруется. Помогите если кто знает.
2. evgenijj - 17 Марта, 2007 - 14:53:19 - перейти к сообщению
$name=eregi_replace("[^a-zA-z0-9_\-\.]","",$name);
3. kuzya - 17 Марта, 2007 - 16:07:39 - перейти к сообщению
evgenijj пишет:
$name=eregi_replace("[^a-zA-z0-9_-.]","",$name);

У меня оно такое же, видимо PHP слэши отфильтровал при посте)
4. evgenijj - 17 Марта, 2007 - 16:57:35 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $name = "?my%_fi-le.txt";
  4. echo $name."<br >";
  5. $name = eregi_replace("[^a-zA-z0-9_\\.\\-]","",$name);
  6. echo $name."<br >";
  7. ?>
  8.  

Результат
?my%_fi-le.txt
my_fi-le.txt
5. kuzya - 18 Марта, 2007 - 20:02:52 - перейти к сообщению
Спс, будем пробовать

 

Powered by ExBB FM 1.0 RC1