【问题标题】:Make dir with php and html form用 php 和 html 形式制作目录
【发布时间】:2014-02-24 17:51:14
【问题描述】:

我正在尝试使用 php 和 html 表单使用路径创建一个新文件夹:uploads/$loggedInUser->username$actfolder 但没有成功,我想删除它:

php

<?php
include("db-settings.php");
include("config.php");
$foldername = $_POST['foldername'];

$path = "uploads/$loggedInUser->username
" . $foldername;
mkdir($path);
header('Location:myfiles.php')
?>

html

<form action="mkdir.php" method="post">
<input type="text name="foldername" id="foldername">
<input type="submit" value="submit">
</form>

【问题讨论】:

    标签: php html mkdir


    【解决方案1】:

    去掉换行符。

    $path = 'uploads/' . $loggedInUser->username . '/' . $foldername;
    

    如果这不起作用,您可能遇到了权限问题。

    另外,您的方法完全不安全!任何人都可以在他们的用户名中发布../,然后在您的文件系统中的任意位置放置一个目录。

    最后,当您指定 Location: 标头时,您必须使用完整的 URL。大多数浏览器都会像您一样接受相对资源,但不是全部。

    【讨论】:

    • 所有浏览器都应该接受相对 URL,因为 HTTP 被更改为允许它。
    • @Barmar 它还没有改变。
    • 但是他们正在更改它因为它很常用,非常有用,并且任何人关心的所有浏览器都已经接受它。你有反例吗,还是你只是不必要的迂腐?
    • @Barmar 自己添加基本 URL 很简单。如果你不知道它是什么,你可以从请求的路径和主机中得到它。我相信尽可能遵循标准。没有理由不这样做。我认为指出不包含完整 URL 目前是非标准的事实并没有错,特别是因为我指出大多数浏览器仍然可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    相关资源
    最近更新 更多