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

时间:2011-07-11 14:31:45

标签: php xml post get

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

我想将数据发送到:

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

首先是GET

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

并将一些$thexml = XML发布到

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

然后能够在某些代码中访问这两个代码,例如(示例)

// Example Code ============================

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

7 个答案:

答案 0 :(得分:18)

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

但是,您会发现,如果您在网址中执行了POST并包含参数,例如yourscript.php?param1=somevalue&param2=somevalue,则会填充$_GET$_POST他们各自的数据。

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

您应该考虑这是否是您的良好系统设计。 GET应该用于不更改服务器上数据的请求。 POST可以更改数据。即使两者都可以实现,但最好遵循这种惯例。你永远不会知道该行的某些代理或其他程序会用它做什么。

答案 1 :(得分:6)

是的,您可以通过在表单操作中包含$_GET参数来执行此操作:

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

答案 2 :(得分:4)

我就是这样做的....

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

答案 3 :(得分:3)

是的,你可以。请务必使用$_GET获取get和$_POST。还有$_REQUEST将两者组合在一个阵列中。不鼓励使用它。

答案 4 :(得分:2)

不确定。很简单:

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  ... handle form submission here ...
}

?>

<html>

<body>

<form action="thisscript.php" method="post">
... form here ...
</form>

答案 5 :(得分:0)

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

您可以同时使用来自同一请求的GET和POST数据。

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

答案 6 :(得分:0)

是的,我年轻的Padawan。它就像在表单中更改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']