我遇到的脚本使用:
isset($_POST['submit'])
以及使用以下各项的代码:
$_SERVER['REQUEST_METHOD']=='POST'
我想知道这两者之间的区别以及哪种方法最好。
他们做不同的事情。
第一个检查是否设置了$\u POST
数组中的键(submit
)。
第二个检查$\u服务器
数组中键的值是否为'POST'
。我想人们会用它来判断数据是使用“get”还是“post”方法发送的,但通常情况下,您不仅关心使用了什么方法,而是关心发送了什么数据。
你想干什么?
这意味着两件不同的事情。首先,检查表单提交时是否传递了参数submit
。许多人使用此代码段来验证表单是否已发送。这是因为提交按钮在技术上是一个
<?php
if(isset($_POST['submit'])) { // This way form and form logic can be adjacent to each other
// Logic
}
?>
<form method='POST' action='<?= $_SERVER['REQUEST_URI'] ?>'>
<!--- other form stuff -->
<input type="submit" name="submit" value="Send!" />
</form>
第二个代码段测试表单是否与POST方法一起提交。这并不一定意味着表单按钮被按下。如果它没有与POST一起提交,那么超全局
$_POST
将为空。
isset($_POST['submit'])
如果您已经知道一个特定的值将始终被发送,因此指示了预期的表单提交(在这种情况下是提交字段),这段代码将告诉您两件事:
POST
方法提交,而不是GET
、PUT
等方法提交。submit
字段已通过
$_SERVER['REQUEST_METHOD'] == 'POST'
这正好告诉您一件事,表单是通过POST
方法提交的。使用它的原因包括:
GET
,PUT
,等等)。前者是
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (!isset($_POST['name'])) {
// at this point you know that `name` was not passed as part of the request
// this could be treated as an error
}
}
对战:
if (!isset($_POST['name'])) {
// the `name` field was not passed as part of the request
// but it might also be a GET request, in which case a page should be shown
}
重要的
在请求中检查提交按钮字段是不可靠的,因为表单可以通过其他方式提交(例如在文本框中按Enter)。
$_POST
通过使用这个表达式,您可以断言:
POST
我使用以下html表单代码允许用户选择多个文件进行上传。 uploadFiles.php包含以下代码。 出于某种原因,isset($_POST['提交'])总是返回false。我得到以下输出
我对计划中的应用程序的设计有一点问题,特别是数据库引擎和无服务器/非无服务器。目标是一个通过RESTAPI与数据库对话的Web应用程序。RESTAPI本身实际上只是CRUD操作,因此在我看来,无服务器aproach(AWS Lambda)非常适合。因此,最有效的数据库可能是DynamoDB(NoSQL)。 我熟悉RDBMS,对NoSQL数据库知之甚少。 应用程序的模式尚未完成,应该可以在以后进行扩
我试图检索一个文件从SFTP服务器-而连接到这个SFTP工作与FileZilla-SFTP方法。 对于JSch,我使用JSch尝试了这段代码 虽然我有这个错误: 使用时,我也遇到了同样的错误: 给我这个错误: 我已经尝试了这些链接中提供的其他解决方案,但没有解决它: > 通用域名格式。jcraft。jsch。JSCHEException:SSH\u MSG\u DISCONNECT:2协议错误:r
部署 PHP 应用程序到生产环境中有多种方式。 Platform as a Service (PaaS) PaaS 提供了运行 PHP 应用程序所必须的系统环境和网络架构。这就意味着只需做少量配置就可以运行 PHP 应用程序或者 PHP 框架。 现在,PaaS 已经成为一种部署、托管和扩展各种规模的 PHP 应用程序的流行方式。你可以在 资源部分 查看 PHP PaaS “Platform as
“Drools骆驼服务器”和“KIE-WB执行服务器”有什么区别?它们是否服务于在远程服务器中执行规则/进程的相同目的?
Request 参照symfony2的Request服务 GET {#get} public function testAction(Request $request) { //get $request -> query -> get('xxx'); $request -> query -> all(); } POST {#post} public function tes
我正在EC2实例上开发apache2环境。为了安全起见,我想更改apache2的ssl端口。我已经确认默认的ssl端口443是通过检查页面与chrome浏览器工作。但修改ports.conf如下,我有一个错误,ERR_SSL_PROTOCOL_ERROR当访问这个服务器像https://xxxxxxx: 18443/ 是否有任何更改ssl端口的设置? 侦听端口 /etc/apache2/ports
我访问了我网站的子文件夹,并出现以下错误: $\u服务器['DOCUMENT\u ROOT']似乎返回了一个错误的目录,如下所示: 如果我访问www.my.com。website/php,这应该是$\u服务器['DOCUMENT\u ROOT']应该返回的预期目录: 这些是我的虚拟主机配置: 如何配置virtualhost配置,以便访问www.my。website/php它应该返回Document