PHP我的添加评论功能有一个小问题

时间:2014-02-02 15:56:48

标签: php

在我的网站上,我有一个表格如下:

<div id="addComment">
<form method="post" action="" id="add_comment">
  <label for="Text">Text</label><br />
  <textarea name="Text" id="Text"> </textarea><br />
  <input type="submit" name="submit" id="submit" />
</form>
</div>

我正在使用codeigniter。

我的控制器里面有这个:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Image extends CI_Controller {

function index()
{          
    $post['post'] = $this->uri->segment(3);
    $this->load->view('theme/header');
    $this->load->view('view_post', $post);
    $this->load->view('theme/footer');
}

public function add_comment(){

    $text = $this->post('Text');
    $url = $this->uri->segment(3);

    $this->load->model('comment_model');
    $this->load->database();
    $this->load->helper('url');

    $status = "";
    $msg = "";

    if (empty($_POST['Text']))
   {
    $status = "error";
    $msg = "Please enter a title";
   }

   if ($status != "error")
    {  
     $file_id = $this->comment_model->add_comment($text, $url);
     if($file_id == true)
     {
        $status = "success";
        $msg = "Comment successfully added";
     }
     else
     {
        unlink($data['full_path']);
        $status = "error";
        $msg = "Something went wrong when posting the comment, please try again.";
     }

  @unlink($_FILES[$file_element_name]);
   }
   echo json_encode(array('status' => $status, 'msg' => $msg));
   }

 }

 ?>

在我的表单“动作”中,我尝试添加“add_comment”。但它似乎没有帮助..但是当我这样做。我的网址将如下所示:“website.com/image/index/add_comment/”所以我想这是在正确的道路上。但由于某种原因..评论不会添加到我的MySql数据库..

这是我的模特:

<?php

class Comment_model extends CI_Model {

   public function add_comment($text, $url)
   {
    $currenttime = date('d F Y H:i:s', strtotime('+1 hour'));

  $data = array(
     'url' => $url,
     'comment' => $text,
     'date' => $currenttime
  );
  $this->db->insert('comments', $data);
  return $this->db->insert_id();
   }
  }
?>

在我看来,一切都应该工作..... 有什么帮助吗?

提前致谢。

编辑:

我想出了一些东西..当我向表单操作添加“add_comment”时会发生这种情况:当我从url(http://hurhaar.com/image/index/add_comment)中删除“index”时。它会工作..然后我得到“{”状态“:”错误“,”msg“:”请输入标题“}”。但为什么我的表单操作会将“索引”添加到网址....?

1 个答案:

答案 0 :(得分:0)

你没有从代码中的表单中获取已发布的值

$file_id = $this->comment_model->add_comment($text, $url); 

首先,您必须将表单的已发布值存储在$ text和$ url

中 像这样

$text=$this->input->post('Text');

第二,你必须在表格中提及行动

action="add_comment"

第三,你不能像这样if (empty($_POST['Text']))在codeignitor中取得后期价值 你必须使用  if (empty($this->input->post('Text')))