Beispiel #1
0
function newFile()
{
    global $conn_id;
    global $serverTmp;
    global $lang_title_new_file;
    global $lang_new_file_name;
    global $lang_template;
    global $lang_no_template;
    global $lang_file_exists;
    global $lang_file_cant_make;
    global $filesCharSet;
    $isError = 0;
    // Set vars
    $vars = "&ftpAction=newFile";
    // Display templates
    $templates_dir = "templates";
    $file_name = empty($_POST["newFile"]) ? '' : trim(quotesUnescape($_POST["newFile"]));
    if ($file_name == "") {
        $title = $lang_title_new_file;
        $width = 400;
        $height = 95;
        displayPopupOpen(0, $width, $height, 0, $title);
        echo "<input type=\"text\" name=\"newFile\" id=\"newFile\" placeholder=\"" . $lang_new_file_name . "\" onkeypress=\"if (event.keyCode == 13){ processForm('" . $vars . "'); return false;}\">";
        $langs = '';
        if (is_dir($templates_dir)) {
            if ($dh = opendir($templates_dir)) {
                $i = 0;
                while (($file = readdir($dh)) !== false) {
                    if ($file != "" && $file != "." && $file != ".." && $file != "index.html") {
                        $file_name = $file;
                        $template_found = 1;
                        $langs .= "<option value=\"" . $file_name . "\">" . $file_name . "</option>";
                    }
                }
                closedir($dh);
            }
        }
        echo "<p>" . $lang_template . ": ";
        echo "<select name=\"template\">";
        echo "<option value=\"\">" . $lang_no_template . "</option>";
        echo $langs;
        echo "</select>";
        displayPopupClose(0, $vars, 1);
    } else {
        if ($filesCharSet != "utf-8") {
            $file_name = iconv("utf-8", $filesCharSet, $file_name);
        }
        $fp1 = tempnam($serverTmp, "monsta-");
        register_shutdown_function('shutdown_unlinkTempFile', $fp1);
        if ($_SESSION["dir_current"] == "/") {
            $fp2 = "/" . $file_name;
        } else {
            $fp2 = $_SESSION["dir_current"] . "/" . $file_name;
        }
        // Check if file already exists
        if (checkFileExists("f", $file_name, $_SESSION["dir_current"]) == 1) {
            recordFileError("file", $file_name, $lang_file_exists);
        } else {
            $content = '';
            // Get template
            if ($_POST["template"] != $lang_no_template) {
                $file_name = $templates_dir . "/" . $_POST["template"];
                $fd = fopen($file_name, "r");
                $content = fread($fd, filesize($file_name));
                fclose($fd);
            }
            // Write file to server
            $tmpFile = fopen($fp1, "w+");
            fputs($tmpFile, $content);
            fclose($tmpFile);
            ensureFtpConnActive();
            // Upload the file
            if (!@ftp_put($conn_id, $fp2, $fp1, FTP_BINARY)) {
                if (checkFirstCharTilde($fp2) == 1) {
                    if (!@ftp_put($conn_id, replaceTilde($fp2), $fp1, FTP_BINARY)) {
                        recordFileError("file", $file_name, $lang_file_cant_make);
                        $isError = 1;
                    }
                } else {
                    recordFileError("file", $file_name, $lang_file_cant_make);
                    $isError = 1;
                }
            }
            if ($isError == 0) {
                // Open editor
                $file = $fp2;
                displayEditFileForm($file, $content);
            }
        }
        // Delete tmp file
        unlink($fp1);
    }
}
Beispiel #2
0
function newFile()
{
    global $conn_id;
    global $serverTmp;
    global $lang_title_new_file;
    global $lang_new_file_name;
    global $lang_template;
    global $lang_no_template;
    global $lang_file_exists;
    global $lang_file_cant_make;
    // Set vars
    $vars = "&ftpAction=newFile";
    // Display templates
    $templates_dir = "templates";
    $file_name = trim(quotesUnescape($_POST["newFile"]));
    if ($file_name == "") {
        $title = $lang_title_new_file;
        $width = 400;
        $height = 85;
        // Display pop-up
        displayPopupOpen(0, $width, $height, 0, $title);
        echo "<input type=\"text\" name=\"newFile\" id=\"newFile\" placeholder=\"" . $lang_new_file_name . "\" onkeypress=\"if (event.keyCode==13){ processForm('" . $vars . "'); return false;}\">";
        if (is_dir($templates_dir)) {
            if ($dh = opendir($templates_dir)) {
                $i = 0;
                while (($file = readdir($dh)) !== false) {
                    if ($file != "" && $file != "." && $file != "..") {
                        $file_name = $file;
                        $template_found = 1;
                        $langs .= "<option value=\"" . $file_name . "\">" . $file_name . "</option>";
                    }
                }
                closedir($dh);
            }
        }
        echo "<p>" . $lang_template . ": ";
        echo "<select name=\"template\">";
        echo "<option value=\"\">" . $lang_no_template . "</option>";
        echo $langs;
        echo "</select>";
        displayPopupClose(0, $vars, 1);
    } else {
        $fp1 = $serverTmp . "/" . $file_name;
        if ($_SESSION["dir_current"] == "/") {
            $fp2 = "/" . $file_name;
        } else {
            $fp2 = $_SESSION["dir_current"] . "/" . $file_name;
        }
        // Check if file already exists
        if (checkFileExists("f", $file_name, $_SESSION["dir_current"]) == 1) {
            $_SESSION["errors"][] = str_replace("[file]", "<strong>" . $file_name . "</strong>", $lang_file_exists);
        } else {
            // Get template
            if ($_POST["template"] != $lang_no_template) {
                $file_name = $templates_dir . "/" . $_POST["template"];
                $fd = fopen($file_name, "r");
                $content = fread($fd, filesize($file_name));
                fclose($fd);
            }
            // Write file to server
            $tmpFile = fopen($fp1, "w+");
            fputs($tmpFile, $content);
            fclose($tmpFile);
            // Upload the file
            if (!@ftp_put($conn_id, $fp2, $fp1, FTP_BINARY)) {
                $_SESSION["errors"][] = str_replace("[file]", "<strong>" . $file_name . "</strong>", $lang_file_cant_make);
            } else {
                // Open editor
                $file = $fp2;
                displayEditFileForm($file, $content);
            }
        }
    }
}