2013-07-01 5 views
0

Я довольно новичок в PHP, поэтому вопрос может показаться легким. У меня есть HTML-файл с входом с этими атрибутами:Создать папку по определенному пути

<td width="30%"> 
<input type="text" id="prog1" name="prog1" style="width:150px"> 
</td> 

я должен создать новую папку на моем сервере в другой папке wars, что уже существует. Имя новой папки сохраняется на этом входе. Например, если текст ввода «home», мой PHP-скрипт будет создавать папку здесь: wars/home.

<? 
$val = $_REQUEST['prog2']; 
mkdir("/wars/".$val, 0777); 
?> 

Это мой код, но он не работает, потому что внутри основной папки wars я не могу найти home. Есть ли у вас предложения?

+0

try 'mkdir (" wars /".$ val, 0777); 'и затем читать по относительным и абсолютным путям –

+0

" мой PHP-скрипт собирается создать папку здесь: 'wars/home'. --- и в скрипте вы создаете '/ wars/home'. Существует различие между каталогами '/ wars' и' wars' – zerkms

+0

Вы изучали журналы после запроса? – dksh

ответ

2

Основной проблемой является опечатка:

$val = $_REQUEST['prog2']; 

Ваша форма имеет только <input name="prog1" .... Тем не менее, вы также должны серьезно рассмотреть дезинфицирующим переменные:

$val = $_REQUEST['prog1']; 
// only allow alphabetical characters 
if (preg_match('/^[a-z]+$/', $val)) { 
    mkdir("/wars/$val", 0777); 
} 

Наконец, рассмотреть вопрос об использовании $_POST вместо $_REQUEST, если вы никогда не знаете, где эта переменная будет исходить от.

+0

Я использовал

, поэтому я должен поставить $ _POST вместо $ _Request? –

+0

@AlbertoRossi Да, вы должны. – kba

+0

ОК спасибо всем, сейчас он работает –

1

Try:

<?php 
$val = $_POST['prog1']; 
mkdir("/wars/".$val, 0777); 
?> 

уведомление неправильный ввод prog1 !== prog2 атрибут, также научиться делать некоторые простые отладки, как:

<?php echo '<pre>'.print_r($_POST,true).'</pre>'; ?> 

позволяют также сообщения об ошибках на развитие.

<?php error_reporting(E_ALL); ?>