开发者

Folder with Random Name and Save file to it with PHP

开发者 https://www.devze.com 2023-04-12 15:03 出处:网络
So I am creating trying to create a PHP script where the client can create a folder with a 10 digit name of random letters and numbers, and than save the document they are currently working on into th

So I am creating trying to create a PHP script where the client can create a folder with a 10 digit name of random letters and numbers, and than save the document they are currently working on into that folder. Its like a JSfiddle where you can save what you are currently working on and it makes a random folder. My issue is that it wont create my directory, and the idea is correct, and it should work. However, PHP isn't saving an Error Log so I cannot identify the issue. Here's what I got so far.

PHP

save_functions.php

<?php
function genRandomString() {
    $length = 10;
    $characters = "0123456789abcdefghijklmnopqrstuvwxyz";
    $string = '';    
    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters))];
    }
    return $string;

}
<?php
function createFolder() {
    $folderName = genRandomString(); //Make a random name for the folder
    $goTo = '../$folderName';//Path to folder
    while(is_dir($goTo)==true){ //Check if a folder with that name exists
        $folderName = genRandomString();
        $goTo = '../$folderName';
    }
    mkdir($goTo,7777); //Make a directory with that name at $goTo
    return $goTo; //Return the path to the folder
}
?>   

create_files.php

<?php
include('save_functions.php');//Include those functions
    $doc = $_POST['doc'];//Get contents of the file
    $folder = createFolder();//Make the folder with that random name
    $docName = '$folder/style.css';//Create the css file
    $dh = fopen($docName, 'w+') or die("can't open file");//Open or create the file
    fwrite($dh, $doc);//Overwrite conten开发者_StackOverflowts of the file
   fclose($dh);//Close handler
?>


The call to mkdir($goTo,7777) has wrong mode, this is usually octal and not decimal or hex. 7777 is 017141 in octal and thus tries to set non-existent bits. Try the usual 0777.

But why don't you just use tempnam() or tmpfile() in your case?

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号