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 เรื่องการเรียกใช้ hooks มาใช้งาน controll public กับส่วนของ controller member ครับ อยากสอบถาม เกี่ยวกับการ Login ครับ



 

codeigniter เรื่องการเรียกใช้ hooks มาใช้งาน controll public กับส่วนของ controller member ครับ อยากสอบถาม เกี่ยวกับการ Login ครับ

 



Topic : 091190



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



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




คือผมต้องการให้ hooks มันตรวจสอบแค่ controll_member อ่ะคับ ส่วน controll_public ก็อยากให้ทุกคนสามารถเข้าดูได้แต่ แต่ controll_member ต้องตรวจสอบ login ครับเราต้อง set ค่า hooks ยังไงคับรบกวนช่วยตอบหน่อยนะครับ



Tag : PHP, MySQL, HTML/CSS, jQuery, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-02-20 20:01:48 By : sleepington View : 2502 Reply : 3
 

 

No. 1



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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


hooks ของ CI เมื่อเปิดใช้แล้ว จะทำงานในทุก state (เรียกว่า hook point) ที่คุณได้เลือกไว้ครับ โดย hook จะทำงานบ่อยแค่ไหน ขึ้นกับ hook point ที่เลือกใช้ด้วยเช่นกันครับ

ดังนั้น จึงไม่สามารถเปิดใช้ hooks กับบาง controller ได้ (ณ ขณะนี้มี 7 hook point)


เบื้องต้น หากจะแก้ปัญหาตามที่ท่าน จขกท อยากให้เป็น

อย่างง่าย คือ
- สร้าง class ขึ้นมา 1 class โดย extends มาจาก core controllers อีกทีครับ ใน class นี้ คุณ จขกท สามารถใช้ logic ที่อยากให้เป็นได้เลย
- controller member ของท่าน หรือ controller ไหนก็ตาม ที่อยากจะให้มีการจำกัดการเข้าถึง สามารถมาสืบทอดไปจาก class นี้ได้ทันทีครับ
- controller ที่เป็น public ของท่าน สามารถสืบทอด core controller ได้ตามเดิมครับ ซึ่งจะเป็นการทำงานปกติ ไม่มีการตรวจเช็ค อย่างที่ท่านต้องการ


อย่างง่าย แต่ไม่แนะนำ
- คือการเขียนทับ core controller ตามที่ท่าน จขกท ต้องการได้เลย แต่ตรวจสอบแบบ hard code ให้ทำงานเฉพาะ controller ที่ท่านต้องการเท่านั้น

การเขียนทับ core controller จะทำให้ทุก controller ที่ท่านสร้างขึ้นมา สืบทอดลักษณะไปจาก core controller ตัวใหม่ของท่านอีกต่อหนึ่ง โดยอัตโนเมติก ครับ

ลองเลือกดูครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-20 20:38:38 By : triplea
 


 

No. 2



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



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


พ่อจะมีตัวอย่างไหมคับท่าน ยัง งงๆ นิดหนึ่งครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-20 21:47:42 By : sleepington
 

 

No. 3



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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


อันนี้อธิบายถึงวิธีอย่างง่าย แบบแรกที่ผมแนะนำไปนะครับ

ก็คือ สร้างคลาสมา 1 คลาส สืบทอดไปจาก core controller เดิมครับ
แล้วเขียนโค้ดตรวจสอบ หรืออะไรก็ตามแต่ ในแบบของท่านได้เลย

สมมติ ผมสร้างคลาส A นะครับ
Code (PHP)
class A extends CI_Controller{
	function __construct()
	{
		parent::__construct();
		
		               // เขียนโค้ดตรวจสอบตามที่ต้องการได้เลยครับ เช่น authentication ต่างๆ

	}
}


ปกติ member controller ของท่าน จะสืบทอดจาก core controller ใช่มั้ยครับ
ก็เปลี่ยนเป็น มาสืบทอดไปจากคลาส A ที่สร้างใหม่ได้เลย
จะทำให้ member controller มี authentication โดยอัตโนมัติครับ
และเช่นเดียวกันครับ หากอยากให้ controller ต้อง authen ก่อน ก็มาสืบทอดคลาส A ไป
Code (PHP)
class Member extends A{
	//เขียนโค้ด
}


สำหรับ public controller ที่ท่านไม่ต้องการตรวจสอบอะไรใดๆ ก็สามารถสืบทอด core controller ได้ตามเดิมครับ
ปล. ชื่อคลาส Public อย่าตั้งนะครับ อันนี้ยกตัวอย่างเฉยๆ
Code (PHP)
class Public extends CI_Controller{
	//เขียนโค้ด
}




การเขียนทับ core controller ใหม่ จะเหมาะกับกรณีที่ท่านต้องการให้ทุกๆ controller นั้นมีคุณสมบัติบางอย่างเพิ่มเติม หรือ คุณสมบัติอื่ๆ ที่เหมือนๆกัน ครับ
พูดง่ายๆ คือ เราสร้าง คลาสแม่ขึ้นมาใหม่นั่นเองครับ ใน 2 ลักษณะครับ คือ

1. สร้างคลาสแม่ใหม่หมดเลย
อันนี้เหมาะสำหรับการกำหนดคุณลักษณะให้กับสิ่งนั้นๆใหม่หมดเลย(กรณีไม่ต้องการใช้ core class เดิม ของ CI นะครับ)
แบบนี้จะมีความเสี่ยงสูงมาก ที่จะพังทั้งระบบครับ จึงควรต้องระวังมากๆๆๆๆๆๆๆๆ

2. สร้างคลาสแม่มาใหม่แต่ สืบทอดมาจาก core class เดิม
แบบนี้จะเหมาะสำหรับการกำหนดคุณลักษณะบางอย่างเพิ่มเติมจาก core class เดิมครับ
และคนส่วนใหญ่ หากต้องการแก้ไข จะเลือกใช้วิธีนี้กันครับ

หากต้องการทำในแบบ 1 หรือ 2 ที่ว่านี้ ก็ทำได้ไม่ยากเช่นกันครับ (ย้ำว่า โจทย์นี้ไม่แนะนำนะครับ) ในที่นี้ ขออธิบายวิธีที่ 2 ซึ่งเป็นที่แพร่หลายนะครับ

ปกติแล้วหากไม่แก้ config อะไรเลย การทับ core class เดิมนั้นจะมี prefix เป็น MY_ (สามารถแก้ได้ และถ้าแก้แล้ว ต้องแก้ในโค้ดด้วยนะครับ)
Code (PHP)
class MY_Controller extends CI_Controller {
       function __construct()
       {
             parent::__construct();
             //เขียนโค้ด
       }
     
       function xxxx()
       {
           //เขียนโค้ด
       }
}

ซึ่งจะเขียนในลักษณะใด จะตรวจสอบอะไร ก็ตามแต่ท่านสะดวกเลยครับ

และแน่นอนครับ เมื่อแก้ไขแล้ว
controller ใหม่ของท่าน ก็จะต้องมาสืบทอด MY_Controller ไปครับ ถึงจะมีคุณสมบัติตามที่ท่านต้องการได้

คงพอจะเข้าใจนะครับ
เมื่อยมือล่ะ หากยังไม่เข้าใจ เดี๋ยวจะมาพิมพ์ตอบใหม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-21 10:06:01 By : triplea
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : codeigniter เรื่องการเรียกใช้ hooks มาใช้งาน controll public กับส่วนของ controller member ครับ อยากสอบถาม เกี่ยวกับการ Login ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่