使用php发布数据时出错

时间:2015-03-30 10:28:44

标签: php codeigniter http-post postman

我是一个使用codeigniter框架的新php程序员。

我的帖子数据有问题, 问题是, 当我在邮递员中使用url params发布数据时, 我的价值(姓名,用户名和电子邮件)都是假的。 在DB中,值为0

但是当我尝试在postman中使用form-data时,值是成功的帖子,没有错误/ false。

这是json的回应:

{
  "name": false,
  "username": false,
  "email": false,
  "password": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "created_at": "2015-03-30 15:36:58",
  "updated_at": "2015-03-30 15:36:58",
  "status": 0
}

这就是我的控制器的样子。

public function user_post()
{

  date_default_timezone_set('Asia/Jakarta');
  $datestring ="%Y-%m-%d %H:%i:%s";
  $time       =time();
  $datetime   =mdate($datestring, $time);

  $user = array (
        'name'       => $this->post('name'),
        'username'   => $this->post('username'),
        'email'      => $this->post('email'),
        'password'   => sha1($this->post('password')),
        'created_at' => $datetime,
        'updated_at' => $datetime,
        'status'     => 0
  );

  $result = $this->signup_model->registration_insert($user);
  if ($result) {
    $this->send_new_password_email($user);
    $this->response($user, 200);
  } else {
    $this->response(array('error' => 'missing paramaters'), 404);
  }

}

我的模型是这样的:

public function registration_insert($data) {

$condition = "username =" . "'" . $data['username'] . "' OR " . "email =" ."'" . $data['email'] . "'" ;
$this->db->select('*');
$this->db->from('table');
$this->db->where($condition);
$this->db->limit(1);
$query = $this->db->get();

if ($query->num_rows() == 0) {
  $this->db->insert('table', $data);
  if ($this->db->affected_rows() > 0) {
    return true;
    } else {
    return false;
    }
  }
}
谢谢你们, CMIIW

1 个答案:

答案 0 :(得分:0)

在codeIgniter中,要使用后期值

$this->input->post(); //work as $_POST
$this->input->get(); //work as $_GET
$this->input->get_post(); //work as $_REQUEST

因为我可以看到你使用了错误的语法。