4

我正在尝试将 httpRequest 发送到 codeigniter 控制器函数。我正在使用 REST 控制台来测试该功能。我正在尝试发送3 POST变量。

  • 用户名
  • 电子邮件
  • 用户身份

这是处理请求的代码

public function NewUser()
{
    if($this->input->post())
    {
        $FID        = $this->input->post('UserID');
        $UserName   = $this->input->post('UserName');
        $Email      = $this->input->post('Email');
        echo "working";
        echo $FID;
        echo $UserName;
    }
    else
    {
        echo "not working";
    }
}

但这不起作用。它总是输出not working. 当我将所有内容更改为get一切都开始正常工作时。

可能是什么问题 ?在整个过程中,发布请求在任何地方都不起作用codeigniter project

编辑

我使用以下代码创建了一个新脚本。

<?php

  var_dump($_POST);
  echo $_POST['UserName'];
  echo $_POST['FacebookID'];
  echo $_POST['Email'];
  echo "********************************";
?>

它在说undefined index。可能是什么问题 ?请帮忙。它适用于$_GET

4

6 回答 6

13

$this->input->post()不经意地返回 false ,因为您没有提及要使用 post 检索的值的名称。在您的代码中进行更改:

if(isset($_POST))

或者

  if(!empty($_POST))

帖子

你也可以这样做:

if($this->input->post('username'))//username is the name of post variable
于 2013-08-27T13:41:42.357 回答
9

你应该试试

isset($_REQUEST) 或者 !empty($_REQUEST)

检查数据是否到来

于 2013-08-27T13:48:42.340 回答
3

尝试

if( count($this->input->post()) > 0 )
{

}
else
{

}
于 2013-08-27T14:29:31.483 回答
3

要获取 codeigniter 3 ( docs ) 中的方法,您可以使用以下代码:

echo $this->input->method(TRUE); // Outputs: POST
echo $this->input->method(FALSE); // Outputs: post
echo $this->input->method(); // Outputs: post

例子:

public function NewUser()
{
    if($this->input->method() === 'post')
    {
        $FID        = $this->input->post('UserID');
        $UserName   = $this->input->post('UserName');
        $Email      = $this->input->post('Email');
        echo "working";
        echo $FID;
        echo $UserName;
    }
    else
    {
        echo "not working";
    }
}
于 2017-08-30T17:13:06.940 回答
1

我有一个类似的问题。由于使用国际化,URL 会从 user/login 重定向到 user/en/login。当重定向发生时,POST 数组会丢失。

我不确定这是否也是您的问题,但请检查您的页面是否在提交后重定向。

于 2014-01-20T09:22:15.257 回答
1

在 Codeigniter 中,我们可以检查HttpRequest它正在使用2 下面Input的类方法:

1.server('REQUEST_METHOD')

$this->input->server()与 Core PHP 的$_SERVER变量相同。

例子:

if ($this->input->server('REQUEST_METHOD') == 'GET') {
   echo "It's GET Request";
} else if ($this->input->server('REQUEST_METHOD') == 'POST') {
   echo "It's POST Request";
}  

2.method()

从 Codeigniter 3 开始,我们也可以使用它method()来检查请求类型。

方法([$upper = FALSE])

参数: $upper (bool) – 返回请求方法名是大写还是小写

返回: HTTP请求方法

返回类型: 字符串

说明:它返回$_SERVER['REQUEST_METHOD'], 并可选择将其设置为大写或小写。

例子:

echo $this->input->method(TRUE); // Outputs: POST
echo $this->input->method(FALSE); // Outputs: post
echo $this->input->method(); // Outputs: post
于 2019-03-28T07:49:28.713 回答