0

我正在尝试将用户输入的公司传递到路径以确定显示的内容。我让公司提交到表单所在的页面,这是内容显示的路径。如果它是一个新的公司名称,我想包括一个 mkdir。

$path = '(uploadedFiles/($_POST['companyName']))';
$dirs = scandir($path);

不知道为什么,但我现在收到未定义的索引错误。这是要求在名为 admin.php 的页面上的名称的部分

print '<form action="admin.php" method="POST">'.PHP_EOL;
            print' <h4> Enter the name of the company the new uploads belong to.</h4>';
            print'    <label class="control-label"    `for="companyName">companyName</label>';`
            print'      <input type="text" name="" id="companyName" placeholder="Enter Comapny Name ">';
            print'      <button type="submit" class="btn">Enter</button>';
            print' </div>'; 
4

5 回答 5

3

最好的方法(Zend Code Style Guide)是这样连接它:

$path = 'uploadedFiles/' . $_POST['companyName']; // works with double-
                                                  // and single-quotes

但请注意:接受用户输入,未经验证进入您的系统可能会导致黑客攻击。

另一种方式是这样的:

$path = "uploadedFiles/{$_POST['companyName']}"; // double-quotes only
于 2013-10-07T15:54:02.777 回答
1

干得好:

$companynamedir = $_POST['companyName'];

$path = "uploadedFiles/" . $companynamedir;

$dirs = scandir($path);
于 2013-10-07T15:53:20.470 回答
1

您应该使用双引号来处理变量,并且变量是 $_POST,而不是 $-POST。

$path = "uploadedFiles/{$_POST['companyName']}";

当然,在这里使用 POST 变量是一个 BAD BAD BAD 想法

于 2013-10-07T15:53:28.940 回答
0
$path = 'uploadedFiles/'. $_POST['companyName'] ;
if (!file_exists($path) {
    mkdir($path, 0775, true);
   }
$dirs = scandir($path);

我希望这会有所帮助。

于 2013-10-07T16:06:46.590 回答
0

添加到之前所说的错误($_POST,而不是 $-POST;混合引号和双引号)中,您可以使用大括号将变量回显到字符串中:

$path = "uploadedFiles/{$_POST['companyName']}";
于 2013-10-07T15:57:47.733 回答