2016-01-24 5 views
1

Например, у меня есть каталог Родитель и папки внутри:Как предотвратить создание файлов php в родительских каталогах?

mysite.com/Parent_Folder/A_Folder/File.php

file.php содержит следующий код:

<?php 
mkdir('/Parent_Folder/A_New_Folder', 0777, true); 

Я хочу, чтобы запретил создавать файлы в родительских каталогах. Как мне ограничить это?

Однако создавать папки в том же каталоге, должно быть разрешено, например, следующий код должен работать:

<?php 
mkdir('A_New_Folder_in_Current_Directory', 0777, true); 

, что приведет к:

mysite.com/Parent_Folder/ A_Folder/A_New_Folder_in_Current_Directory

+0

Получаете ли вы имя папки по вводу или хотите ограничить этот файл в целом? – HtmHell

+1

Почему бы не проверить, пытается ли mkdir() создать папку в родительском или текущем каталоге перед ее созданием? – birraa

+0

@birraa Система позволяет пользователям вводить php-код, поэтому в основном пользователи создают файлы, а не меня. –

ответ

0

Hi Trondro Mullingan!

Вы можете попробовать чистый «../../» вы можете проверить это:

file.php:

<?php 

    // from post 
    $new_folder = '../../A_New_Folder_in_Current_Directory'; 
    // you need removed the ../../ 

    $new_folder_clean = str_replace('../../','',$new_folder); 

    //now you create the folder together file.php file. 

    mkdir($new_folder_clean, 0777, true); 

?> 

Также вы можете установить фактически папку вар конкатенировать для папки, чтобы дети ,