我可以POST和GET到同一个PHP页面


Can I POST and GET to the same PHP page

我想知道是否有可能在同一个php页面上GET和POST,例如

我想发送数据到:

http://www.example.com/my.php

首先是GET

http://www.example.com/my.php?task=dosomething

和POST一些$thexml = XML

http://www.example.com/my.php?task=dosomething

,然后能够在一些代码中访问两者,如(示例)

// Example Code ============================
    if($_GET["task"] == "dosomething"){
      $mynewxml = $_POST["$thexml"];
    }
//==========================================

技术上不能,POSTGET不能同时存在。它们是两个不同的动词,你只能在请求时使用一个。

但是,您会发现,如果您执行POST并在URL中包含参数,例如yourscript.php?param1=somevalue&param2=somevalue,那么$_GET$_POST都将使用各自的数据填充。

了解HTTP的实际工作原理是明智的。http://www.jmarshall.com/easy/http/

你应该考虑这是否是一个好的系统设计。GET应该用于不更改服务器上数据的请求。POST可以修改数据。尽管这两种方法都可以实现,但最好还是遵循这种常见做法。你永远不知道一些代理或其他程序会用它做什么。

是的,您可以通过将$_GET参数作为表单操作的一部分来做到这一点:

<form method='post' action='handler.php?task=dosomething'>
   ...
</form>

我是这样做的....

if (isset($_POST['somevar'])) { 
    $somevar = $_POST['somevar']; } 
    else { 
    $somevar = $_GET['somevar']; 
}

可以。确保get和$_POST使用$_GET。还有$_REQUEST,它将两者组合在一个数组中。不鼓励使用这种方法。

当然。很简单:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  ... handle form submission here ...
}
?>
<html>
<body>
<form action="thisscript.php" method="post">
... form here ...
</form>

您不能在客户端(两个不同的请求)使用这两个方法,并且在PHP脚本的同一执行中查看所有参数。您需要选择POST或GET。

您可以同时使用来自同一请求的GET和POST数据,因为其他请求发出信号。

如果您需要整理来自多个不同请求的数据(出于任何原因),则需要自己存储和管理这些中间数据。

是的,我年轻的徒弟。这就像在表单中更改post属性一样简单。

<form method="post"....
<input type="text" name="some_name"...

<form method="get"....
<input type="text" name="some_name"...

并添加一个提交按钮。提交后,您将访问存储在各自变量中的HTTP Request Post/GET数据。

$_POST['some_name'] or $_GET['some_name']