2015-12-17 5 views
0

Я пытаюсь взять поле/имя из представленной формы и создать из нее папку, и, похоже, она проходит без ошибок, но не создает папку.Папка не создается

Мой HTML:

<form id="roomcreation" name="roomcreation" method="post" action="/"> 
<input type="hidden" name="form_name" value="roomcreation"><p> 
Room Name:<p> 
<input class="roomcreation_text" name="roomname" type="text" id="roomname";"> 
<p>File Name:<p> 
<input class="roomcreation_text" name="filename" type="text" id="filename";"> 
<p>Editor Password:<p> 
<input class="roomcreation_text" name="editorpassword" type="password" id="editorpassword";"><p> 
<p>Genre Select:<p> 
    <select name="genre" id="genre" onChange="javascript:chgAction()"> 
    <option value="" selected="selected">Select</option> 
    <option value="Creative">Creative</option> 
    <option value="Erotic">Erotic</option> 
    <option value="Fantasy">Fantasy</option> 
    <option value="Gorean">Gorean</option> 
    <option value="History">History</option> 
    <option value="Reality">Reality</option> 
    <option value="Supernatural">Supernatural</option> 
    <option value="Transilient">Transilient</option> 
    </select> 

<?php echo $error_message; ?><p> 

<input class="roomcreation_button" type="submit" name="create" value="Create Room" id="roomcreate";"> 
</form> 

мой PHP:

<?php 
// 
if (isset($_POST['filename']) && isset($_POST['editorpassword']) && isset($_POST['roomname'])) 

$dir = $_POST['filename']; // This must match the "name" of your input 
$path = "evo/$dir"; 
if (!file_exists('$path')) { 
mkdir('$path', 0755, true); 
} 

print_r($_POST); exit; // 

?> 

обновление

Я изменил свой каталог, который я пытался Ouput к, будучи такой же один сценарий в настоящее время в, evo/$ dir, и он вставил папку с именем $ path, что означает, что она не забирала переменную имени файла и, как я ее ранее написал, не является wr в каталог, в который я хотел пойти, в котором находится/rooms/creative/$ dir.

+1

является этот родительский путь к директории 'номера/creative'? –

+0

вы можете отлаживать его с помощью set using error_reporting (E_ALL); ini_set ('display_errors', 1); –

+1

Может быть, есть шанс на разрешение. –

ответ

1

Форма

<form id="roomcreation" name="roomcreation" method="post" action=""> 
    <input type="hidden" name="form_name" value="roomcreation"> 
    <p> 
     Room Name: 
     <input class="roomcreation_text" name="roomname" type="text" id="roomname"> 
    </p> 
    <p> 
     File Name: 
     <input class="roomcreation_text" name="filename" type="text" id="filename"> 
    </p> 
    <p> 
     Editor Password: 
     <input class="roomcreation_text" name="editorpassword" type="password" id="editorpassword"> 
    </p> 
    <p> 
     Genre Select: 
     <select name="genre" id="genre" onChange="javascript:chgAction()"> 
      <option value="" selected="selected">Select</option> 
      <option value="Creative">Creative</option> 
      <option value="Erotic">Erotic</option> 
      <option value="Fantasy">Fantasy</option> 
      <option value="Gorean">Gorean</option> 
      <option value="History">History</option> 
      <option value="Reality">Reality</option> 
      <option value="Supernatural">Supernatural</option> 
      <option value="Transilient">Transilient</option> 
     </select> 
    <p> 
    <?php echo $error_message; ?><p> 
     <input class="roomcreation_button" type="submit" name="create" value="Create Room" id="roomcreate"> 
</form> 

Sever скрипт

<?php 
if (isset($_POST['filename']) && isset($_POST['editorpassword']) && isset($_POST['roomname'])) { 
    $dir = $_POST['filename']; // This must match the "name" of your input 
    $path = "evo/" . $dir; 
    if (!file_exists($path)) { 
     mkdir($path, 0755, true); 
    } 
} 
?> 

Выход

enter image description here

Попробуйте это, если не работает разрешение изменения в 0777 (Обратите внимание, что 0777 уже режим по умолчанию для каталогов и все еще может быть изменен текущим UMASK.)

I надеюсь это поможет.

Если вы не уверены в пути, используйте dirname(__FILE__)

+0

Это очень помогает! Спасибо, Никил. Я знал, что я это неправильно писал. Это создало новую папку с именем evo/then directory folder from filename. Это нормально для тестирования и ничего не испортило. Мне нужно, однако, сделать папку:/home/revo/public_html/rooms/creative/(имя файла здесь), и я не уверен, как обеспечить его создание в этом конкретном месте после объявления/ –

+0

спасибо Nikhil I Я не совсем уверен в том, что у меня есть правильный путь, я знаю, куда он должен идти, и путь, который я должен сказать, просто не направить его туда. Я больше об этом читаю, спасибо. –

+0

Я знаю, что у меня неправильный путь, каждый раз я пытаюсь что-то вроде ./rooms/creative/. $ dir, как вы его там, он создает его в папке, где скрипт, а не найти правильный путь. –

1
$path = rooms/creative . '/' . $dir; 

Заменить:

$path = "rooms/creative/$dir"; 
+0

Спасибо Shailesh Я сделал это и его еще не создавал папку –

+0

Я отредактировал свой ответ, попробуйте. –

+0

Еще раз спасибо Шайлеш. Я не уверен, что мне не хватает, но он все еще не создает его и до сих пор не получил ошибку. –

Смежные вопросы