Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用DELETE form方法删除服务器上的文件_Php_Html - Fatal编程技术网

Php 使用DELETE form方法删除服务器上的文件

Php 使用DELETE form方法删除服务器上的文件,php,html,Php,Html,我正在尝试使用html表单中的delete方法删除服务器上的文件 我有一个文件,该文件的url为: http://example.com/file2.php 我使用以下代码删除文件: <form action="file2.php"method="DELETE"> <input type="submit"value="delete file"> </form> 而不是删除: DELETE /file2.php HTTP/1.1 有人知道为什么delet

我正在尝试使用html表单中的delete方法删除服务器上的文件

我有一个文件,该文件的url为:

 http://example.com/file2.php
我使用以下代码删除文件:

<form action="file2.php"method="DELETE">
<input type="submit"value="delete file">
</form>
而不是删除:

DELETE /file2.php HTTP/1.1

有人知道为什么delete方法不起作用吗?或者如何使用删除方法删除文件?

大多数浏览器不支持将
删除
作为
的方法参数。事实上,它甚至不是:

method和formmethod内容属性是具有以下关键字和状态的枚举属性:

  • 关键字get,映射到状态get,表示HTTP get方法

  • 关键字post,映射到状态post,表示HTTP post方法

这里有一些:

似乎我们目前还不明白PUT和DELETE对HTML表单有何用处

对于DELETE,创建一个有用的请求确实很容易。然而,服务器实现通常使用200和最小响应体(“已删除”)或204(无内容)进行响应。因此,如何在web应用程序中使用它还不清楚

对于PUT,似乎没有真正的用例,只要web页面不能完全控制负载,并且还可以设置内容类型

请考虑删除这个特性,直到对它有什么好处有一个更清楚的理解。

像这样的框架提供了方法欺骗:

如果不使用框架,可以尝试模仿这种行为:

if($_SERVER['REQUEST_METHOD'] === 'DELETE' || (isset($_REQUEST['_method'] && $_REQUEST['_method'] === 'delete') {
...
}

大多数浏览器不支持将
删除
作为
的方法参数。事实上,它甚至不是:

method和formmethod内容属性是具有以下关键字和状态的枚举属性:

  • 关键字get,映射到状态get,表示HTTP get方法

  • 关键字post,映射到状态post,表示HTTP post方法

这里有一些:

似乎我们目前还不明白PUT和DELETE对HTML表单有何用处

对于DELETE,创建一个有用的请求确实很容易。然而,服务器实现通常使用200和最小响应体(“已删除”)或204(无内容)进行响应。因此,如何在web应用程序中使用它还不清楚

对于PUT,似乎没有真正的用例,只要web页面不能完全控制负载,并且还可以设置内容类型

请考虑删除这个特性,直到对它有什么好处有一个更清楚的理解。

像这样的框架提供了方法欺骗:

如果不使用框架,可以尝试模仿这种行为:

if($_SERVER['REQUEST_METHOD'] === 'DELETE' || (isset($_REQUEST['_method'] && $_REQUEST['_method'] === 'delete') {
...
}
仅限Mozilla
GET
POST

我有两项建议:

  • 使用POST将数据发送到PHP代码并从那里处理

  • 不要删除那么简单的东西。创建一个函数,它只会说它被删除,直到你真的确定它必须被删除

仅限Mozilla
GET
POST

我有两项建议:

  • 使用POST将数据发送到PHP代码并从那里处理

  • 不要删除那么简单的东西。创建一个函数,它只会说它被删除,直到你真的确定它必须被删除


这不是一个好方法,不是所有浏览器都支持它。最好使用phpMost浏览器,因为它不会发送
delete
方法。它被更改回
get
。(我猜是这样的:因为
delete
已经过时了,所以浏览器不再支持它了。)这不是一个好方法,不是所有的浏览器都支持它。最好使用phpMost浏览器,因为它不会发送
delete
方法。它被更改回
get
。(我猜是这样的:因为
delete
已经过时了,所以浏览器不再支持它了。)这就是我的想法。它是HTTP规范的一部分,但是从HTML规范中删除了。这就是我的想法。它是HTTP规范的一部分,但已从HTML规范中删除。
Route::delete('/items/{id}', 'ItemController@destroy');
if($_SERVER['REQUEST_METHOD'] === 'DELETE' || (isset($_REQUEST['_method'] && $_REQUEST['_method'] === 'delete') {
...
}