2015-09-14 93 views
0

我在笨只是新的,我有这个错误我有一个错误在我的__construct

一个PHP错误遇到

严重性:注意

消息:未定义的属性:stdClass的:: $ DATA

文件名:驱动器/ Session_database_driver.php

行号:171

回溯:

文件: C:\ Apache24 \ htdocs中\ iCareFinal \应用\控制器\的welcome.php 线:20功能:__construct

文件:C:\ Apache24 \ htdocs中\ iCareFinal \的index.php线:292功能: require_once

这里是我的控制器的welcome.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Welcome extends CI_Controller { 

public function __construct() 
{ 
    parent::__construct(); 


    $this->load->model('login/m_login'); 

    $this->load->library(array('form_validation','session')); 

    $this->load->database(); 

    $this->load->helper('url'); 

} 


public function index() 
{ 


    $session = $this->session->userdata('isLogin'); 

    if($session == FALSE) 

    { 

    redirect('welcome/login_form'); 


    } 
    else 

    { 

    redirect('home'); 

    } 


} 



public function login_form() 

{ 



    $this->form_validation->set_rules('username', 'Username', 'required|trim|xss_clean'); 

    $this->form_validation->set_rules('password', 'Password', 'required|md5|xss_clean'); 

    $this->form_validation->set_error_delimiters('<span class="error">', '</span>'); 

    if($this->form_validation->run()==FALSE) 

    { 

    $this->load->model('select'); 
    $user=$this->select->getid(); 
    $this->load->view('include/loginpage/header'); 
    $this->load->view('loginView/loginPage'); 
    $this->load->view('include/loginpage/footer'); 

    }else 

    { 

    $username = $this->input->post('username'); 

    $password = $this->input->post('password'); 


    $cek = $this->m_login->takeUser($username, $password); 

    if($cek <> 0) 

    { 

    $this->session->set_userdata('isLogin', TRUE); 

    $this->session->set_userdata('username',$username); 




    // save data to a session 
    $user_id = 199911019; 

    $newdata = array(
      'user_id' => $user_id 

      ); 

    $this->session->set_userdata($newdata); 


    redirect('home'); 

    }else 

    { 

    echo " <script> 

    alert('Failed Login: Check your username and password! $password'); 

    history.go(-1); 

    </script>"; 

    } 

    } 

} 

public function logout() 

{ 

    $this->session->sess_destroy(); 

    redirect('welcome/login_form'); 

} 

} 

型号m_login.php

<?php 

if(!defined('BASEPATH')) exit('Hacking Attempt : Get Out of the system ..!'); 

class M_login extends CI_Model 

{ 

public function __construct() 

{ 

parent::__construct(); 

} 

public function takeUser($username, $password) 

{ 

$this->db->select('*'); 

$this->db->from('USERS'); 

$this->db->where('USERNAME', $username); 

$this->db->where('PASSWORD', $password); 


$query = $this->db->get(); 

return $query->num_rows(); 

} 

public function userData($username) 

{ 

$this->db->select('username'); 

$this->db->select('name'); 

$this->db->where('username', $username); 

$query = $this->db->get('USERS'); 

return $query->row(); 

} 

} 

查看loginPage.php

<body> 
<div> 
<div class="welcome"> 
    <h4 class="text-muted mt-0 font-alt" style="font-size: 20px; font-family: 'Times New Roman', Times, serif;" >Welcome to myADNU</h4> 
</div> 
<hr class="hr-width"> 

<form action="<?php echo site_url('Welcome/index'); ?>" method="post"> 
    <div id="bootstrap-tagsinput" class="form-group has-feedback"> 
<input type="text" class="form-control" placeholder="ID Number" name="username" /> 
     <i class="glyphicon glyphicon-user form-control-feedback"></i> 
    </div> 
    <br> 
    <div id="bootstrap-tagsinput" class="form-group has-feedback"> 
     <input type="password" class="form-control" placeholder="Password" name="password" /> 
     <i class="glyphicon glyphicon-lock form-control-feedback"></i> 
    </div> 
    <br> 
    <div id="bootstrap-tagsinput"> 
     <button type="submit" class="btn btn-primary btn-lg btn-block">SUBMIT</button> 
    </div> 

</form> 
</div> 

</div><!-- /.container --> 

这里是我的会话表名CI_SESSION DATA VARCHAR2(500字节)ID VARCHAR2(200字节)IP_ADDRESS VARCHAR2(20 BYTE)TIMESTAMP NUMBER(20,0)

请他LP。谢谢

+0

查看下面的代码.. –

+0

只是一个想法,我会自动加载数据库在autoload.php文件也在您的视图中您的site_url()在表单行动改变为base_url() – user4419336

+0

@vhann你检查下面的代码? –

回答

0

我认为这个问题是您行:

$这个 - >负载>数据库()加载模型之后出现。

我建议你把它放在数组$ this-> load-> library()中。您不需要单独加载它。

菲利普

+0

并确保您在首先加载库之前。 – Phil

+0

我尝试你的代码,但它仍然有相同的错误。无论如何,感谢您的帮助。一路上,我从头开始创建了一个新的项目,并且它现在正常工作,现在我需要做的就是将此代码集成到我的新代码中。无论如何感谢您的帮助菲尔你是最好的 – vhann

0

删除此行从控制器构造

$this->load->database(); 

,并添加模型构建这条线。您的模型看起来像:

public function __construct(){ 
     parent::__construct(); 
     $this->load->database(); 
    } 

你的控制器构造看起来像

public function __construct(){ 
    parent::__construct(); 
    $this->load->model('login/m_login'); 
    $this->load->library(array('form_validation','session')); 
    $this->load->helper('url'); 
} 
+0

我尝试你的代码,但它仍然有相同的错误。无论如何,感谢您的帮助。一路上,我从头开始创建了一个新的项目,并且它现在正常工作,现在我需要做的就是将此代码集成到我的新代码中。无论如何感谢蝎子的帮助。你是最好的。 – vhann

+0

很高兴知道你解决了这个问题。 – Scorpion

0

检查这一点,

控制器欢迎。PHP

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Welcome extends CI_Controller { 

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('login/m_login'); 
} 

public function index() 
{ 
    $session = $this->session->userdata('isLogin'); 
    if($session == FALSE) 
    { 
     redirect('welcome/login_form'); 
    } 
    else 
    { 
     redirect('home'); 
    } 
} 

public function login_form() 
{ 
    $this->form_validation->set_rules('username', 'Username', 'required|trim|xss_clean'); 
    $this->form_validation->set_rules('password', 'Password', 'required|md5|xss_clean'); 
    $this->form_validation->set_error_delimiters('<span class="error">', '</span>'); 
    if($this->form_validation->run()==FALSE) 
    { 
     $this->load->model('select'); 
     $user=$this->select->getid(); 
     $this->load->view('include/loginpage/header'); 
     $this->load->view('loginView/loginPage'); 
     $this->load->view('include/loginpage/footer'); 
    } 
    else 
    { 
     $username = $this->input->post('username'); 
     $password = $this->input->post('password'); 
     $cek = $this->m_login->takeUser($username, $password); 

     if($cek <> 0) 
     { 
      $this->session->set_userdata('isLogin', TRUE); 
      $this->session->set_userdata('username',$username); 
      // save data to a session 
      $user_id = 199911019; 
      $newdata = array(
       'user_id' => $user_id 
      ); 
      $this->session->set_userdata($newdata); 
      redirect('home'); 
     } 
     else 
     { 
      echo " <script> 
      alert('Failed Login: Check your username and password! $password'); 
      history.go(-1); 
      </script>"; 
     } 
    } 
} 

public function logout() 
{ 
    $this->session->sess_destroy(); 
    redirect('welcome/login_form'); 
} 

} 

模块m_login.php

<?php 
class M_login extends CI_Model 

public function takeUser($username, $password) 
{ 
    $this->db->select('*'); 
    $this->db->from('USERS'); 
    $this->db->where('USERNAME', $username); 
    $this->db->where('PASSWORD', $password); 
    $query = $this->db->get(); 
    return $query->num_rows(); 
} 

public function userData($username) 
{ 
    $this->db->select('username'); 
    $this->db->select('name'); 
    $this->db->where('username', $username); 
    $query = $this->db->get('USERS'); 
    return $query->row(); 
} 

} 

,并在配置文件夹autoload.php添加这些线。

$autoload['libraries'] = array('database', 'session','form_validation',);

$autoload['helper'] = array('url');

这将解决您的问题。

相关问题