这是固定的,我将我的功能命名为与我的控制器相同的名称,更改了从登录到do_login的功能名称,现在是一种享受,谢谢所有
嗨,这应该很简单: -
我正在使用CI编写一个php网站
我试图在我的控制器上使用以下方法获取一个简单的POST变量:
public function login()
{
$something = $this->input->post('something');
}
这个在控制器名称Login.php上,想法是有一个表单在登录/登录时将POST数据传递给这个函数,但是我收到了这个错误
遇到PHP错误
严重性:注意
消息:未定义的属性: 登录:: $输入
文件名:controllers / login.php
行号:38
(!)致命错误:致电会员 函数post()在非对象中 C:\瓦帕\ WWW \ rcity \应用\控制器\ login.php中 第38行
我已经尝试了get_instance(),但是我可以在控制器内部引用其他所有内容$this
,只要我提到POST它就会死掉,然后我读取输入类已经加载了所以那不是问题,任何想法?
由于
HERES login.php的完整文件
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller {
public function index()
{
$data = array(
'title' => '*** | Login',
);
$this->load->helper('login_helper');
$this->load->view('head_view',$data);
if (check_login()==TRUE){$this->load->view('header_logged_in');}
else {$this->load->view('header_logged_out');}
$this->load->view('nav_view');
$this->load->view('login_view');
$this->load->view('footer_view');
}
public function login()
{
$something = $this->input->post('something');
$this->load->helper('login_helper');
}
}
答案 0 :(得分:2)
您不能将您的功能命名为与控制器相同的...这将使其成为构造函数。
你最擅长的是:
function __construct()
{
parent::__construct();
// the stuff you currently have in index()
}
public function index()
{
$this->login_user();
}
public function login_user()
{
// your code here
}