Site icon บริษัท โค๊ดบี จำกัด

สอน codeigniter ทำระบบสมัครสมาชิก

ระบบสมัครสมาชิก-4

ระบบสมัครสมาชิก-4

<h3>สอน codeigniter เข้าใจโครงสร้างของ CI ด้วยระบบสมัครสมาชิก<&sol;h3>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>สอน code igniter เขียนระบบสมัครสมาชิกด้วย codeigniter framework แบบ Step By Step<&sol;strong><br &sol;>&NewLine;<&sol;br><br &sol;>&NewLine;ในบทความนี้เป็นการสอน codeigniter เหมาะสำหรับคนที่อยากจะใช้งาน codeigniter framework<br &sol;>&NewLine;แต่ไม่รู้จะเริ่มยังไง หรือบางที เริ่มลงมือเขียนโค๊ดแล้ว แต่ก็ยังไม่เข้าใจในการทำงานแบบ MVC ของ CI Framework<br &sol;>&NewLine;รองมาทำความเข้าใจกับเฟรมเวิร์คตัวนี้ ด้วยการสร้างโปรเจคแบบง่าย ๆ ดูกันครับ<br &sol;>&NewLine;<&excl;--more--><&sol;p>&NewLine;<p><&sol;br><&sol;p>&NewLine;<h3>1&period; ออกแบบและสร้างฐานข้อมูล<&sol;h3>&NewLine;<p>ให้ลองคิดดูว่าแบบฟอร์มสำหรับการสมัครสมาชิกหลัก ๆ แล้วควรจะมีข้อมูลส่วนไหนอยู่บ้าง จากนั้นให้เราสร้าง<br &sol;>&NewLine;ตารางฐานข้อมูลขึ้นมาและเพิ่ม field ต่าง ๆ เข้าไป ในที่นี้จะทดลองสร้างแค่ 5 field ดังนี้<&sol;p>&NewLine;<ul>&NewLine;<li>สร้างฐานข้อมูลตั้งชื่อว่า myweb กำหนด collection ให้เท่ากับ utf8&lowbar;general&lowbar;ci<&sol;li>&NewLine;<p><&sol;br><br &sol;>&NewLine;<img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2016&sol;08&sol;ระบบสมัครสมาชิก-1&period;png" alt&equals;"ระบบสมัครสมาชิก" &sol;><br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;<li>สร้างตาราง MySQL Table และตั้งชื่อว่า <strong>apps&lowbar;member<&sol;strong><&sol;li>&NewLine;<li>กำหนด field data สำหรับตาราง apps&lowbar;member เท่ากับ 5<&sol;li>&NewLine;<p><&sol;br><br &sol;>&NewLine;<img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2016&sol;08&sol;ระบบสมัครสมาชิก-2&period;png" alt&equals;"ระบบสมัครสมาชิก" &sol;><br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;<li>ตั้งชื่อ field ทั้ง 5 field ดังนี้<br &sol;>&NewLine;<&sol;br><br &sol;>&NewLine;<img src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;wp-content&sol;uploads&sol;2016&sol;08&sol;ระบบสมัครสมาชิก-3&period;png" alt&equals;"ระบบสมัครสมาชิก" &sol;><br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;<ul>&NewLine;<li><strong>member&lowbar;id<&sol;strong> มี type &equals; int ไว้สำหรับเก็บไอดี ตั้งค่าเป็น primary key และ auto increment&NewLine;<li><strong>first&lowbar;name<&sol;strong> มี type &equals; vachar&lpar;100&rpar; ไว้เก็บชื่อของสมาชิก<&sol;li>&NewLine;<li><strong>last&lowbar;name<&sol;strong> มี type &equals; vachar&lpar;100&rpar; ไว้เก็บนามสกุลของสมาชิก<&sol;li>&NewLine;<li><strong>email<&sol;strong> มี type &equals; vachar&lpar;100&rpar; ไว้เก็บอีเมลของสมาชิก<&sol;li>&NewLine;<li><strong>timestamp<&sol;strong> มี type &equals; timestamp ไว้เก็บวันเวลาที่สมัครสมาชิก มีค่า default เท่ากับ current&lowbar;timestamp<&sol;li>&NewLine;<&sol;ul>&NewLine;<&sol;li>&NewLine;<&sol;ul>&NewLine;<p><&sol;br><&sol;p>&NewLine;<hr>&NewLine;<h3>2&period; ตั้งค่าการใช้งานฐานข้อมูล<&sol;h3>&NewLine;<p>ทำการติดตั้ง Codeigniter Framework <&sol;p>&NewLine;<blockquote><p><a href&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;เรียน-php-codeigniter-เน้นใช้งาน-ตอน-1-hello-codeignit&sol;" target&equals;"&lowbar;blank">ดูวิธีการติดตั้ง codeigniter framework จากกระทู้นี้<&sol;a><&sol;p><&sol;blockquote>&NewLine;<p>เสร็จแล้วเปิดไฟล์ application&sol;config&sol;database&period;php ตั้งค่าต่าง ๆ ดังนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >'hostname' &equals;&gt&semi; 'localhost'&comma; &NewLine;'username' &equals;&gt&semi; 'root'&comma; &sol;&sol; username โปรแกรมจำลองเว็บเซิฟเวอร์ &NewLine;'password' &equals;&gt&semi; 'root'&comma; &sol;&sol; password โปรแกรมจำลองเว็บเซิฟเวอร์ &NewLine;'database' &equals;&gt&semi; 'myweb'&comma; &sol;&sol; ชื่อฐานข้อมูลที่เราสร้างไว้ก่อนหน้านี้<&sol;pre>&NewLine;<p>เสร็จแล้วเปิดไฟล์ application&sol;config&sol;config&period;php ค้นหาตัวแปร<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&dollar;autoload&lbrack;'libraries'&rsqb; &equals; array&lpar;&rpar;&semi;<&sol;pre>&NewLine;<p>เพิ่มการโหลดใช้งานการติดต่อฐานข้อมูลแบบอัตโนมัติโดยเปลี่ยนเป็น<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&dollar;autoload&lbrack;'libraries'&rsqb; &equals; array&lpar;'database'&rpar;&semi;<&sol;pre>&NewLine;<p><&sol;br><&sol;p>&NewLine;<hr>&NewLine;<h3>3&period; สร้าง Register Controller สำหรับรับข้อมูล<&sol;h3>&NewLine;<p>สร้างไฟล์ Register&period;php และวางไว้ในโฟลเด้อ application&sol;controllers&sol;Register&period;php<br &sol;>&NewLine;โดยในไฟล์ Register&period;php ให้สร้าง Register Class และ Extends คลาส CI&lowbar;Controller<br &sol;>&NewLine;และให้มีรูปแบบโครงสร้างของคลาสตามหลักของ CI Framework จะสามารถเขียนได้ดังนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " title&equals;"application&sol;controllers&sol;Register&period;php">&lt&semi;&quest;php &NewLine;defined&lpar;'BASEPATH'&rpar; OR exit&lpar;'No direct script access allowed'&rpar;&semi; &NewLine; &NewLine;class Register extends CI&lowbar;Controller &lbrace; &NewLine; &NewLine;&Tab;public function &lowbar;&lowbar;construct&lpar;&rpar; &NewLine;&Tab;&lbrace; &NewLine;&Tab;&Tab;parent&colon;&colon;&lowbar;&lowbar;construct&lpar;&rpar;&semi; &NewLine;&Tab;&Tab;&dollar;this-&gt&semi;load-&gt&semi;helper&lpar;array&lpar;'form'&comma; 'url'&rpar;&rpar;&semi; &sol;&sol; โหลดเฮลเปอร์ form และ url ของ ci มาใช้งาน &NewLine;&Tab;&Tab;&dollar;this-&gt&semi;load-&gt&semi;library&lpar;'form&lowbar;validation'&rpar;&semi; &sol;&sol; โหลดไลบรารี่ form&lowbar;validation ของ ci มาใช้งาน &NewLine;&Tab;&rcub; &NewLine;&Tab;public function index&lpar;&rpar; &NewLine;&Tab;&lbrace; &NewLine;&Tab;&Tab;&dollar;this-&gt&semi;load-&gt&semi;view&lpar;'register&lowbar;view'&rpar;&semi; &sol;&sol; เข้ามาครั้งแรกให้โหลด register&lowbar;view มาแสดง &NewLine;&Tab;&rcub; &NewLine;&Tab;public function validate&lpar;&rpar; &NewLine;&Tab;&lbrace; &NewLine;&Tab;&Tab;&dollar;this-&gt&semi;form&lowbar;validation-&gt&semi;set&lowbar;rules&lpar;'first&lowbar;name'&comma; 'Username'&comma; 'required'&rpar;&semi; &NewLine;&Tab;&Tab;&dollar;this-&gt&semi;form&lowbar;validation-&gt&semi;set&lowbar;rules&lpar;'last&lowbar;name'&comma; 'Password'&comma; 'required'&rpar;&semi; &NewLine;&Tab;&Tab;&dollar;this-&gt&semi;form&lowbar;validation-&gt&semi;set&lowbar;rules&lpar;'email'&comma; 'Email'&comma; 'required&vert;is&lowbar;unique&lbrack;users&period;email&rsqb;'&rpar;&semi; &NewLine; &NewLine;&Tab;&Tab;if &lpar;&dollar;this-&gt&semi;form&lowbar;validation-&gt&semi;run&lpar;&rpar; &equals;&equals; FALSE&rpar; &NewLine;&Tab;&Tab;&lbrace; &NewLine;&Tab;&Tab;&Tab;&Tab;&dollar;this-&gt&semi;load-&gt&semi;view&lpar;'register&lowbar;view'&rpar;&semi; &NewLine;&Tab;&Tab;&rcub;else&lbrace; &NewLine;&Tab;&Tab;&Tab;&dollar;first&lowbar;name &equals; &dollar;this-&gt&semi;input-&gt&semi;post&lpar;'first&lowbar;name'&rpar;&semi; &NewLine;&Tab;&Tab;&Tab;&dollar;last&lowbar;name &equals; &dollar;this-&gt&semi;input-&gt&semi;post&lpar;'last&lowbar;name'&rpar;&semi; &NewLine;&Tab;&Tab;&Tab;&dollar;email &equals; &dollar;this-&gt&semi;input-&gt&semi;post&lpar;'email'&rpar;&semi; &NewLine;&Tab;&Tab;&rcub; &NewLine;&Tab;&rcub; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p>ให้สังเกตุการทำงานในฟังก์ชั่น validate นะครับ ในฟังก์ชั่นนี้เราจะทำการกำหนดกฏเกณฑ์การตรวจสอบตัวแปร<br &sol;>&NewLine;ว่าตัวแปรอะไรบ้างที่จำเป็นต้องกรอกและตัวแปรไหนจำเป็นต้องมี format แบบไหน ตัวอย่างเช่นอีเมล จำเป็นจะต้อง<br &sol;>&NewLine;กรอข้อมูลที่เป็นรูปแบบของ email<&sol;p>&NewLine;<p><&sol;br><&sol;p>&NewLine;<hr>&NewLine;<h3>4&period; สร้าง Register View สำหรับกรอกข้อมูลสมัครสมาชิก<&sol;h3>&NewLine;<p>หลังจากที่เราได้สร้าง Register Controller ไว้สำหรับรับข้อมูลจาก html form แล้วในขั้นตอนต่อไป<br &sol;>&NewLine;ให้สร้างไฟล์ register&lowbar;view&period;php และวางไฟล์ไว้ในโฟลเด้อ application&sol;views&sol;register&lowbar;view&period;php<br &sol;>&NewLine;เขียน html form สำหรับรับค่าข้อมูลการสมัครสมาชิกต่าง ๆ จากผู้ใช้งาน และกำหนด <strong>form&lowbar;open<&sol;strong><br &sol;>&NewLine;ให้ส่งค่าไปที่ Register Controller ในเมธอดที่ชื่อว่า validate ให้ลองเขียน html form ง่าย ๆ ดังนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " title&equals;"application&sol;views&sol;register&lowbar;view&period;php">&lt&semi;html&gt&semi; &NewLine;&lt&semi;head&gt&semi; &NewLine;&lt&semi;title&gt&semi;สมัครสมาชิก&lt&semi;&sol;title&gt&semi; &NewLine;&lt&semi;&sol;head&gt&semi; &NewLine;&lt&semi;body&gt&semi; &NewLine;&Tab;&lt&semi;&quest;php echo form&lowbar;open&lpar;'register&sol;validate'&rpar;&semi; &quest;&gt&semi; &NewLine;&Tab;&lt&semi;table&gt&semi; &NewLine; &Tab;&lt&semi;tr&gt&semi; &NewLine; &Tab;&lt&semi;td&gt&semi;First Name &colon; &lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;input type&equals;"text" name&equals;"first&lowbar;name"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;&quest;php echo form&lowbar;error&lpar;'first&lowbar;name'&comma; '&lt&semi;div class&equals;"error"&gt&semi;'&comma; '&lt&semi;&sol;div&gt&semi;'&rpar;&semi; &quest;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &Tab;&lt&semi;td&gt&semi;Last Name &colon; &lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;input type&equals;"text" name&equals;"last&lowbar;name"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;&quest;php echo form&lowbar;error&lpar;'last&lowbar;name'&comma; '&lt&semi;div class&equals;"error"&gt&semi;'&comma; '&lt&semi;&sol;div&gt&semi;'&rpar;&semi; &quest;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &Tab;&lt&semi;td&gt&semi;Email &colon; &lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;input type&equals;"text" name&equals;"email"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;&quest;php echo form&lowbar;error&lpar;'email'&comma; '&lt&semi;div class&equals;"error"&gt&semi;'&comma; '&lt&semi;&sol;div&gt&semi;'&rpar;&semi; &quest;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &Tab;&lt&semi;td colspan&equals;"1"&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;input type&equals;"submit" value&equals;"Register Now"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;&sol;table&gt&semi; &NewLine; &lt&semi;&sol;form&gt&semi; &NewLine;&lt&semi;&sol;body&gt&semi; &NewLine;&lt&semi;&sol;html&gt&semi;<&sol;pre>&NewLine;<p><&sol;br><&sol;p>&NewLine;<hr>&NewLine;<h3>5&period; สร้าง Register Model สำหรับบันทึกและคืนข้อมูล<&sol;h3>&NewLine;<p>ความเป็นจริงแล้ว ในขั้นตอนของการบันทึกข้อมูลที่ถูกส่งมากจาก Register&lowbar;view เราสามารถทำได้ทันที<br &sol;>&NewLine;ในส่วนของ Register Controller โดยที่ไม่ต้องสร้าง Model ใด ๆ เลย เราสามารถบันทึกข้อมูล<br &sol;>&NewLine;ได้โดยการใช้คำสั่ง &dollar;this->db->insert&lpar;&rpar; ได้ในฟังก์ชั่น validate ได้เลย ตัวอย่างเช่น<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >if &lpar;&dollar;this-&gt&semi;form&lowbar;validation-&gt&semi;run&lpar;&rpar; &equals;&equals; FALSE&rpar; &NewLine;&lbrace; &NewLine;&Tab;&dollar;this-&gt&semi;load-&gt&semi;view&lpar;'register&lowbar;view'&rpar;&semi; &NewLine;&rcub;else&lbrace; &NewLine; &dollar;first&lowbar;name &equals; &dollar;this-&gt&semi;input-&gt&semi;post&lpar;'first&lowbar;name'&rpar;&semi; &NewLine;&Tab;&dollar;last&lowbar;name &equals; &dollar;this-&gt&semi;input-&gt&semi;post&lpar;'last&lowbar;name'&rpar;&semi; &NewLine;&Tab;&dollar;email &equals; &dollar;this-&gt&semi;input-&gt&semi;post&lpar;'email'&rpar;&semi; &NewLine;&Tab;&Tab;&Tab; &NewLine;&Tab;&dollar;data &equals; array&lpar; &NewLine;&Tab;&Tab;'first&lowbar;name' &equals;&gt&semi; &dollar;first&lowbar;name&comma; &NewLine;&Tab;&Tab;'last&lowbar;name' &equals;&gt&semi; &dollar;last&lowbar;name&comma; &NewLine;&Tab;&Tab;'email' &equals;&gt&semi; &dollar;email &NewLine;&Tab;&rpar;&semi; &NewLine;&Tab;&dollar;this-&gt&semi;db-&gt&semi;insert&lpar;'apps&lowbar;member'&comma; &dollar;data&rpar;&semi; &NewLine;&Tab;&Tab;&Tab; &NewLine;&rcub;<&sol;pre>&NewLine;<p>แต่ในบทความนี้ให้ทดลองสร้างคลาส Model&lowbar;register&period;php ไว้ใน application&sol;models&sol;Model&lowbar;register&period;php<br &sol;>&NewLine;จากนั้นให้สร้าง Method สำหรับบันทึกข้อมูลลงในเทเบิ้ล apps&lowbar;member จะเขียนตัวอย่างคำสั่งต่าง ๆ ได้ดังนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " title&equals;"application&sol;models&sol;Model&lowbar;register&period;php">&lt&semi;&quest;php &NewLine;defined&lpar;'BASEPATH'&rpar; OR exit&lpar;'No direct script access allowed'&rpar;&semi; &NewLine; &NewLine;class Model&lowbar;register extends CI&lowbar;Model &lbrace; &NewLine;&Tab; &NewLine;&Tab;public function add&lpar;&dollar;data&rpar; &NewLine;&Tab;&lbrace; &NewLine;&Tab;&Tab;&dollar;this-&gt&semi;db-&gt&semi;insert&lpar;'apps&lowbar;member'&comma; &dollar;data&rpar;&semi; &NewLine;&Tab;&Tab;return &dollar;this-&gt&semi;db-&gt&semi;insert&lowbar;id&lpar;&rpar;&semi; &NewLine;&Tab;&rcub; &NewLine;&rcub;<&sol;pre>&NewLine;<p>จากกนั้นทำการโหลด Model&lowbar;register เข้าไปใช้งานใน Controller Register&period;php<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&dollar;this-&gt&semi;load-&gt&semi;model&lpar;'model&lowbar;register'&rpar;&semi;<&sol;pre>&NewLine;<p>ทีนี้เราก็จะสามารถเรียกใช้เมธอด add ใน Model&lowbar;register ได้ในลักษณะดังนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&dollar;data &equals; array&lpar; &NewLine;&Tab;'first&lowbar;name' &equals;&gt&semi; &dollar;first&lowbar;name&comma; &NewLine;&Tab;'last&lowbar;name' &equals;&gt&semi; &dollar;last&lowbar;name&comma; &NewLine;&Tab;'email' &equals;&gt&semi; &dollar;email &NewLine;&rpar;&semi; &NewLine;&dollar;this-&gt&semi;model&lowbar;register-&gt&semi;add&lpar;&dollar;data&rpar;&semi;<&sol;pre>&NewLine;<p>ถ้ายังไม่เข้าใจหรืออ่านหลายรอบแล้วยังงงอยู่ ลองดาวน์โหลดโปรเจคตัวอย่างไปเปิดดูครับ น่าจะเห็นภาพมากขึ้น<&sol;p>&NewLine;<blockquote><p><a href&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;examples&sol;ci&lowbar;register&period;zip" target&equals;"&lowbar;blank">ดาวน์โหลดตัวอย่างระบบสมัครสมาชิก CI<&sol;a><&sol;p><&sol;blockquote>&NewLine;<p><&sol;br><&sol;p>&NewLine;

Exit mobile version