2015-02-05 77 views
0

基本上当我点击我的提交按钮的代码应该创建一个随机字符串长度为5个字符。然后它应该创建一个文件夹(相对位置),其名称是生成的随机字符串。然后它应该创建一个索引文件并将“内容”变量写入文件。不幸的是,它甚至从不制作目录。任何帮助?我无法弄清楚什么是错的。的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

Web服务器在您工作的目录中是否具有写入权限?即您的代码所在的目录。您可能需要在该目录上设置“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);