Могу ли я POST и GET на той же странице PHP

Я хотел знать, возможно ли GET и POST на одной и той же странице php, например

Я хочу отправить данные:

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"]; } //========================================== 

Технически нет, вы не можете POST и GET одновременно. Это два разных глагола, и вы можете сделать это только во время вашего запроса.

Однако вы обнаружите, что если вы выполняете 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 Request Post / GET, хранящимся в их соответствующих переменных.

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