簡體   English   中英

我可以 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

並發布一些$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用於 get 和$_POST 還有$_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 請求發布/獲取數據。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM