|
|
|
| Есть такой небольшой код, с которым у меня траблы :
$dirnew=$dir.'/'.$namefolder;
$files=scandir($dirnew);
|
И все работает, но если в "$namefolder" - есть знак "+", тогда функция "scandir" не работает.(при етом он как бы пропадает, тоесть при виводе на екран - есть не "ааа+" а "ааа "). Что при етом можно сделать ? | |
|
|
|
|
|
|
|
для: IgorT
(12.10.2007 в 19:10)
| | странно, я попробывал выполнить код
print_r(scandir("1/1+"));
всё работает!
напиши сюда что выдаёт код
$dirnew=$dir.'/'.$namefolder;
echo $dirnew; | |
|
|
|
|
|
|
|
для: tricket
(12.10.2007 в 20:24)
| | ето если явно указать. Но у меня пременная - $namefolder - получается через url, (который формируется по ссилке :
<a href="<?echo 'lib.php?namefolder='.$val;?>"><?echo "$val";?></a>
|
при етом $val - название каталога в котором и есть знак "+". | |
|
|
|
|
|
|
|
для: IgorT
(12.10.2007 в 20:29)
| | попробуйте получать $val
так $val=urldecode($_GET['val'])
и так $val=rawurldecode($_GET['val']) посмотрите как будет лучше | |
|
|
|
|
|
|
|
для: IgorT
(12.10.2007 в 20:29)
| | Во-первых, если дополнительных проверок имени каталога больше нет, то это потенциальная уязвимость.
Во-вторых, "+" - это пробел в url-кодировании. Нужно писать ссылку как
...page?param=" . urlencode($value) . "...
Совет EXP'а советую не слушать. В лучшем случае будет работать не так, как надо. В худшем - еще одна потенциальная уязвимость (обход эскейпирования нулевого байта, допустим). | |
|
|
|
|
|
|
|
для: Unkind
(12.10.2007 в 21:20)
| | признаю необдуманность своих слов :) но попробовать всёж можно , поэксперементировать .)
Насколько теперь доосмысливаю , php получается сам интерпритиует полученные данные rawurldecode()'ированными, сталобыть не правильнее.ли будет в ссылке
$link = '/?dir='.rawurlencode('dir+1st');
?
интересно ещё отменяет.ли автодекодирование применение таких decode-функций
<?php
$link = './?link=' . urlencode('a+b+c');
$link2 = './?link2=' . urlencode(urlencode('a+b+c'));
$get_link = (isset($_GET['link'])) ? rawurldecode($_GET['link']) : '-1' ;
$get_link2 = (isset($_GET['link2'])) ? rawurldecode($_GET['link2']) : '-2' ;
echo '<a href="' . $link . '">' . $get_link . '</a><hr>'
. '<a href="' . $link2 . '">' . $get_link2 . '</a><hr>';
?>
|
мучал мучал этиcode() и совсем запутался как надо делать )
// 1:45:55
доказал себе что просто =$_GET.. лучше чем rawurldecode($_GET..) :) | |
|
|
|