【发布时间】:2016-09-16 14:48:35
【问题描述】:
我正在用 PHP 编写一个 Web 应用程序,我想给它一个功能,让用户命名他们的应用程序实例,然后 PHP 根据该名称为应用程序创建一个文件夹(目录)结构。
为此,我编写了一个 PHP 脚本,它从 HTML 表单中获取一个 $_POST 变量,然后使用 mkdir() 函数。这不是实际的脚本,但想法如下:
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<input type="text" name="foldername">
<input type="submit" value="submit">
</form>
<?php
$foldername = 'test';
mkdir($foldername, 0777, false);
?>
我为变量 $foldername 分配了名称“test”,因为我认为当我最初为它分配 $_POST['foldername'] 的值时,我可能使用了不正确的语法。
这是 TL;DR 问题: 当我在 Web 表单上按提交时,此脚本不起作用。它不会产生错误,但也不会生成文件。但是,当我从命令行运行它时,它确实创建了该文件夹。我认为这不是权限问题,因为我是目录的所有者及其父目录。我在我自己的机器上的 Apache 上运行它。任何想法我做错了什么?或者关于替代方法的任何想法?
【问题讨论】:
-
你使用的是什么版本的 PHP?
-
PHP 5.5.9.. 我很确定这是稳定版本
-
当你说“它不会产生错误”时,你真的检查过你的错误日志吗?
-
I am the owner of the directory and its parent.你也是apache用户吗? -
apache 以自己的用户身份运行。如果您的帐户是 dir/parent 的所有者,那么 apache 几乎肯定无权在其中进行任何更改。