【问题标题】:post input data to codeigniter controller from outside codeigniter folder从外部 codeigniter 文件夹将输入数据发布到 codeigniter 控制器
【发布时间】:2016-05-07 11:52:33
【问题描述】:

我遇到了一个问题。我在 cpanel 的 public_html 文件夹中有一个普通的 html 文件(contact.html)。以及在 CodeIgniter 中开发的管理面板。现在我要做的是从contact.html文件打印或接收输入数据到codeigniter控制器。下面提到代码

contact.html

<html>
  <form name ="userinput" action="admin/index.php/contact/contact" method="post">
  <div class="row contact-form">
  <div class="col-lg-6">
  <input type="text" name="yourname" id="yourname" class="form-control" placeholder="Your Name">
   </div><!-- end col -->
  </div><!-- end row -->
 </form>

控制器:contact.php

<?php
class Contact extends CI_Controller
{
  function contact()
   {
   echo 'test';
   echo $yourname = $this->input->post('yourname');
   }
 }?>

现在当我提交数据时,“测试”正在打印,但我无法获取文本框的发布数据。 错误在下面提到。

遇到了 PHP 错误

严重性:通知

消息:未定义的属性:Contact::$input

文件名:controllers/contact.php

行号:12

请帮助我如何获得它。

【问题讨论】:

  • 你需要在你的联系人控制器中创建一个名为contact的函数
  • 是的,我已经创建了函数..但不知道为什么它没有显示它..让我编辑@Poria

标签: php codeigniter codeigniter-2


【解决方案1】:
<?php
  class Contact extends CI_Controller
  {
    public function contact(){
    echo 'test';
    echo $yourname = $this->input->post('yourname');
    $this->load->view('index');  // put this file in application/views/index.php  ,also rename to .php
   }
  }
 ?>

尝试在您的控制器中创建函数。希望对您有所帮助!

【讨论】:

  • 尝试使用 $_POST['yourname'];die;而不是 $this->input->post('yourname');
  • 问题是contact.html文件不在codeignigter文件夹中。在public_html里面有文件夹admin里面有CI,外面的admin文件夹contact.html文件是存在的。这就是为什么我面临这个问题。所以 ci 没有得到 $this->input->post('yourname')
  • 你需要将 index.html 文件放在文件夹 application/views 中
  • application/views/index.php 也将文件重命名为 .php 扩展名
  • $_POST['yourname'];正在工作,但收到类似 A PHP Error was seen : 360
【解决方案2】:

你需要有一个索引函数或另一个函数

文件名:Contact.php 文件名和类只能有控制器和模型的首字母大写。

<?php

class Contact extends CI_Controller {

   public function index() {

   $yourname = $this->input->post('yourname');
   echo $yourname;

   // Since you had named the view file with a .html you need to add .html
   $this->load->view('contact.html');

   }

}

如果你用 .php 而不是 .html 命名你的视图文件

$this->load->view('contact');

我会在 autoload.php 上自动加载 url helper 并查看 form helper

【讨论】:

  • 嗨,我已经写了这个函数。我编辑了我的问题。请检查。问题是contact.html 文件不在codeignigter 文件夹中。在public_html里面有文件夹admin里面有CI,外面的admin文件夹contact.html文件是存在的。这就是我面临这个问题的原因
【解决方案3】:

有可能因为你的函数名与类名相同,所以它把它当作构造函数。将您的函数重命名为其他名称,更新表单中的操作链接,然后重试。

【讨论】:

    【解决方案4】:

    最好尝试原生 PHP 获取价值的方式

    echo $_POST['yourname'];
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多