2015-02-05 4 views
0

В основном, когда я нажимаю кнопку отправки, код должен создать случайную строку длиной 5 символов. Затем он должен создать папку (относительное положение) с именем, которое является случайной строкой. Затем он должен создать индексный файл и записать в файл переменную «content». К сожалению, он даже не делает каталог. Любая помощь? Я не могу понять, что случилось.mkdir() фактически не создает каталог

<?php 
      $characters = "abcdefghijklmnopqrstuvwxyz"; // Valid Folder Characters 
      if(isset($_POST["submit"])) { 
       $folder = randomString($characters, 5); 
       $file = fopen($folder . "/index.html", "w"); 
       $content = "File Content"; 
       mkdir($folder, 0777); 
       fwrite($file, $content); 
       fclose($file); 
      } 
      // Generate Random Folder Name 
      function randomString($valid_chars, $length) { 
       $random_string = ""; 
       $num_valid_chars = strlen($valid_chars); 
       for($i = 0; $i < $length; $i++) { 
        $random_pick = mt_rand(1, $num_valid_chars); 
        $random_char = $valid_chars[$random_pick - 1]; 
        $random_string .= $random_char; 
       } 
       return $random_string; 
      } 
     ?> 
+1

вы можете создать файл? –

+1

Имеет ли веб-сервер разрешение на запись в каталоге, в котором вы работаете? то есть каталог, в котором размещен ваш код. Вероятно, вам нужно установить 'g + w' в этот каталог. –

ответ

0

Убедитесь, что вы имеете права на запись, где и в каком каталоге вы создаете новый каталог и для проверки попробуйте

if (!mkdir($folder, 0777, true)) { 
    die('Failed to create folders...'); 
} 

Кроме того, необходимо сначала создать реж затем файл открыт

if(isset($_POST["submit"])) { 
    $folder = randomString($characters, 5); 
    if (!mkdir($folder, 0777, true)) { 
     die('Failed to create folders...'); 
    } 
    $file = fopen($folder . "/index.html", "w"); 
    $content = "File Content"; 
    fwrite($file, $content); 
    fclose($file); 
} 
0

Пробег это

$oldmask = umask(0); 
if(!file_exists($dir)) mkdir($dir, 0777); 
umask($oldmask); 
Смежные вопросы