POST没有POST数据?

时间:2014-05-22 14:36:26

标签: php

我正在使用以下语句来检查发布数据,并通过URL来设置变量:

   if($_SERVER['REQUEST_METHOD']=='POST')
   {
     $sort = $_GET['sort'];
   } else {
     $sort = "mgap_ska_id";     
   }

我需要通过POST为变量分配值,但前提是该值是通过URL传递的。如果URL不包含变量,则该值需要我可以传递给查询的字符串。是否更好地使用if / then或更好的其他方法?

由于

4 个答案:

答案 0 :(得分:1)

您有两个条件:

如果是发布请求

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
}

使用get变量(如果存在)

$sort = isset($_GET['sort']) ? $_GET['sort'] : 'mgap_ska_id';

把它们放在一起:

$sort = 'default'; // If it's a get request

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $sort = isset($_GET['sort']) ? $_GET['sort'] : 'mgap_ska_id';
}

答案 1 :(得分:0)

只需检查

if(isset($_GET['sort']){
  $sort = $_GET['sort'];
}
else{
  $sort = "mgap_ska_id";
}

但请勿忘记检查有效数据。永远不要相信用户输入。

答案 2 :(得分:0)

确保您有一个名为“sort”的表单输入字段:

$sort = '';
if($_SERVER['REQUEST_METHOD']=='POST'){
    // Sent by POST
    $sort = $_POST['sort'];
} else if ($_SERVER['REQUEST_METHOD']=='GET'){
    // Sent by GET
    $sort = $_GET['sort'];
} else {
    // Neither - set a default.
    $sort = "mgap_ska_id
}
echo $sort;

答案 3 :(得分:0)

您也可以尝试以下将使用POST和GET方法

if(isset($_REQUEST['sort']){
  $sort = $_REQUEST['sort'];
}
else{
  $sort = "mgap_ska_id";
}

供您参考

  • 当有人向您请求数据时,您应该使用$ _GET 应用
  • 当有人推动时,你应该使用$ _POST(插入或 更新;或删除)数据到您的应用程序。

无论哪种方式,表演都没有太大区别:与你的其他剧本相比,差异可以忽略不计。