遇到PHP错误
严重性:警告
消息:非法偏移类型
文件名:Session / Session.php
行号:799
回溯:
文件:/var/www/html/storelte/application/controllers/Login.php行: 16功能:set_userdata文件:/var/www/html/storelte/index.php行: 315功能:require_once
我想用Webix登录,但它总是返回此错误。我的控制器和ajax看起来像这样:
function do_login(){
$usuario = $this->sistema_usuarios_model->login($this->input->post('usuario'),$this->input->post('contrasena'));
if($usuario){
$this->session->set_userdata('a');
$success = array('status'=>1,'message'=>'Bienvenido '.$usuario->usuario);
}else
$success = array('status'=>0,'message'=>'Usuario o contraseña incorrecto');
$this->json($success);
function login(){
var form = $$('login_form');
if (form.validate()){
webix.ajax().post(_URL_LOGIN, form.getValues(), function(response){
console.log(response)
response = JSON.parse(response);
webix.alert({
text:response.message,
callback:function(){
if(response.status)
document.location = '<?= base_url('index.php/menu')?>';
}
});
});
}else{
webix.alert('Ingrese usuario y contraseña');
}
}
答案 0 :(得分:0)
如果您阅读了CodeIgniter documentation,则会发现set_userdata()
需要一个数组。
在您的代码中,您将字符串传递给方法:
$this->session->set_userdata('a'); // 'a' is a string which causes the error
您应该将数组传递给该方法。来自文档:
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
我不知道'a'
字符串代表什么,但你应该传递一组值。 也许,这样的事情:
$data = array(
'a' => true,
);
$this->session->set_userdata($data);
但是,我建议使用更多描述变量名而不是&#39; a&#39;。