Я хотел знать, возможно ли 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¶m2=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']