2015-09-14 50 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');

這將解決您的問題。

相關問題