Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > Codeigniter จะส่งตัวแปรไปอีกหน้าแต่ขึ้น severity notice message undefined variable



 

Codeigniter จะส่งตัวแปรไปอีกหน้าแต่ขึ้น severity notice message undefined variable

 



Topic : 123064



โพสกระทู้ ( 464 )
บทความ ( 0 )



สถานะออฟไลน์




ลอง print_r ออกมาแล้ว session มาไม่ครบ มาแค่ตัวเดียว แล้วจะแสดง session หน้า view ก็ขึ้นตัวภาพครับ

ddd

Controller login
Code (PHP)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends CI_Controller { //ชื่อ class กับชื่อไฟล์ควรเป็นชื่อเดียวกัน

	public function index() {
		$this->load->view('login'); //ส่งไปแสดงผลที่ views/login.php
	}

	public function CheckLogin() {
		$this->form_validation->set_rules('username', 'Username', 'required|trim', array('required'=>'กรุณากรอกชื่อผู้ใช้')); //ฟิลด์, label
		$this->form_validation->set_rules('password', 'Password', 'required|trim|callback_verifyUser', array('required'=>'กรุณากรอกรหัสผ่าน'));
                $this->form_validation->set_error_delimiters('<p class="text-danger">', '</p>');
                
		if ($this->form_validation->run() == false) {
			$this->load->view('login');
		}
		else {
			redirect('Home','refresh');
		}
	}

	public function verifyUser($password) {
                $username = $this->input->post('username');

		$this->load->model('LoginModel'); // เรียกใช้งาน LoginModel
                $result = $this->LoginModel->login($username, $password); //query the database ส่งค่าไปที่ LoginModel
                
		if ($result) {
                    $sess_array = array();
                    //if(isset($result) && sizeof($result)>0){ 
                         foreach($result as $row){ 
                            $sess_array = array(
                                'username'=>$row->uLogin, // ชื่อsession=>$row->ฟิลด์
                                'level'=>$row->uLevel
                            );
                            $this->session->set_userdata('logged_in', $sess_array); //สร้าง session จากตัวแปร array
                        }
                    //}  
                    return true;
		}
		else {
			$this->form_validation->set_message('verifyUser', 'ชื่อผู้ใช้หรือรหัสผ่านผิด! กรุณาลองอีกครั้ง');
                    return false;
		}
	}
}




Controller home
Code (PHP)
<?php 
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    //session_start(); //we need to call PHP's session object to access it through CI

    class Home extends CI_Controller {
       
        public function index() {
            if($this->session->userdata('logged_in') == null){ 
                $this->load->view('login');
            }
            else {
                $this->load->view('index');
            }
                print_r($this->session->userdata('logged_in'));
	}
        
        public function sess(){
            if($this->session->userdata('logged_in')){
                $session_data = $this->session->userdata('logged_in');
                $data['username'] = $session_data['username'];
                $data['level'] = $session_data['level'];
                    $this->load->view('home', $data);
            }
            else{
                //If no session, redirect to login page
                redirect('login', 'refresh');
            }
        }
 
        public function logout(){
            $this->session->unset_userdata('logged_in');
            session_destroy();
            redirect('login', 'refresh');
        }
    }
?>



Model
Code (PHP)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

	class LoginModel extends CI_Model
	{
		public function login($name,$pass) 
		{
			$this->db->select('uLogin','uPassword','uLevel');
			$this->db->from('tbl_user');
			$this->db->where('uLogin', $name);
			$this->db->where('uPassword', md5($pass));

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

			if ($query->num_rows() == 1) {
				return $query->result();
			}
			else {
				return false;
			}
		}
	}
?>



View
Code (PHP)
<h1>หน้าหลัก !</h1><?php echo $username; ?>
        <a href="<?php echo base_url() ?>index.php/home/logout">Logout</a>




Tag : PHP, MySQL, CodeIgniter Framework







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-05-24 13:55:56 By : littlebeer View : 2285 Reply : 2
 

 

No. 1

Guest


กาลครั้งหนึ่งเมื่อไม่นานนี้

หลังจาก login สำเร็จแล้ว

login controller ก็จะ redirect มา home

โดน home ควบคุมโดย home controller

Code (PHP)
<?php 
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    //session_start(); //we need to call PHP's session object to access it through CI

    class Home extends CI_Controller {
       
        // **** แสดงหน้า home ****
        public function index() {
            // ตรวจสอบสถานะการ login (โหดจัง ci ไม่มี middleware)
            if($this->session->userdata('logged_in') == null){ 
                // ยังไม่ได้ login แต่ลักไก่เข้ามา
                $this->load->view('login');
            }
            else {
                // login สำเร็จ ไม่มีการส่ง $username ไปดู mothod ถัดไป
                $this->load->view('index');
            }
                print_r($this->session->userdata('logged_in'));
	}
        
        // ทำไม $username เอามาส่งตรงนี้อ่ะ
        public function sess(){
            if($this->session->userdata('logged_in')){
                $session_data = $this->session->userdata('logged_in');
                $data['username'] = $session_data['username']; //<-- ไม่เคยเขียน ci น่ะ แต่คิดว่าการ pass ค่า
                    // แบบ ci ต้องส่งไปใน $datra 
                $data['level'] = $session_data['level'];
                    $this->load->view('home', $data);
            }
            else{
                //If no session, redirect to login page
                redirect('login', 'refresh');
            }
        }
 
        public function logout(){
            $this->session->unset_userdata('logged_in');
            session_destroy();
            redirect('login', 'refresh');
        }
    }
?>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-24 14:59:30 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 2



โพสกระทู้ ( 484 )
บทความ ( 3 )



สถานะออฟไลน์


แก้ session เดิม
Code (PHP)
$sess_array = array(
   'username'=>$row->uLogin, // ชื่อsession=>$row->ฟิลด์
   'level'=>$row->uLevel
);
$this->session->set_userdata('logged_in', $sess_array); //สร้าง session จากตัวแปร array


แก้เป็น
Code (PHP)
$sess_array = array(
   'logged_in' => TRUE,
   'username' => $row->uLogin, // ชื่อsession=>$row->ฟิลด์
   'level' => $row->uLevel
);
$this->session->set_userdata($sess_array); //สร้าง session จากตัวแปร array


session ไม่จำเป็นต้องส่งค่าไปกับ View
เพราะสามารถเรียกใช้ที่หน้า View ได้เลย

แต่อย่าลืม Set->autoload

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



ประวัติการแก้ไข
2016-05-25 11:47:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-25 10:50:53 By : fossil31
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Codeigniter จะส่งตัวแปรไปอีกหน้าแต่ขึ้น severity notice message undefined variable
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่