ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์จาก สิงหาคม, 2014

การใช้งานฟังก์ชั่น foreach(), array_walk() และ array_map() กับการทำงานกับอาร์เรย์

สำหรับบทความนี้จะมาสอนเขียน PHP เพื่อวนลูปทำงานตามที่ต้องการด้วยฟังก์ชั่น foreach(), ฟังก์ชั่น array_walk() และฟังก์ชั่น array_map() ซึ่งตัวอย่างนี้จะทำงานร่วมกับข้อมูลที่เป็นอาร์เรย์ ข้อมูลเพิ่มเติมที่เว็บไซต์ php.net foreach() array_walk() array_map() ลองมาดูผลลัพธ์ที่ได้จากการเรียกใช้งานฟังก์ชั่นดูกันก่อนจะลองทำแล็ปเล็กๆท้ายบทความนะครับ <?php $data = array('name' => 'Songchai Saetern', 'age' => '29', 'level' => '1'); echo '<b>ข้อมูลในตัวแปร $data</b><pre>', print_r($data, true), '</pre>'; echo "<pre><b>ตัวอย่างการใช้ forech()</b>"; foreach($data as $key => $value) {     echo "<br/>$key : <input type=\"\" name=\"$key\" value=\"$value\" />"; } echo '</pre>'; echo "<pre><b>ตัวอย่างการใช้ array_walk()</b>"; array_walk($data, function($value, $

PHP การล็อกอิน กับปัญหา SQL Injection

       หลังจากได้เข้าร่วมอบรม Website Security Monitoring ที่ทางสำนักวิทยบริการและเทคโนโลยีสารสนเทศ ของมหาวิทยาลัยจัดขึ้น ก็ได้ความรู้เรื่องการสร้างระบบล็อกอินเพื่อป้องกันปัญหา SQL Injection มาฝากกับผู้เริ่มต้นทุกท่าน สำหรับการป้องกันนั้นจะมีอยู่หลายวิธี และวิธีหลักที่ใช้กันก็คือ กรองด้วยฟังก์ชั่น mysql_real_escape_string() , mysqli_real_escape_string() , (ดูเพิ่มเติมได้ที่ http://php.net/manual/en/function.mysql-real-escape-string.php ) ในกรณีของ id ที่เป็นตัวเลขล้วน ก็สามารถใช้ (int) วางไว้ข้างหน้าตัวแปรเพื่อป้องกันข้อมูลในหน้าอื่นๆได้เช่นกัน แต่ในตัวอย่างของบทความนี้ จะอธิบายทีละส่วนเพื่อให้เห็นถึงวิธีการต่างๆ ที่จะโยงไปยังเรื่องของการใช้ md5 ในบทความต่อๆไปด้วยครับ จากบทความที่เคยนำเสนอเกี่ยวกับการ สร้างแบบฟอร์มล็อกอิน จะใช้ SQL ในการตรวจสอบข้อมูลแบบเบื้องต้นดังนี้ $sql = "SELECT * FROM tb_user WHERE user_name = '$_POST[username]'            AND user_password = '". $_POST['password'] ."' "; ตัวอย่างฐานข้อมูลตารางผู้ใช้งาน

การติดตั้ง HMVC สำหรับ CodeIgniter

Step 1. เปิดไปที่หน้าเว็บ codeigniter-modular-extensions-hmvc . ที่แท็ป Downloads จะมีไฟล์สำหรับดาวน์โหลด หรือดาวน์โหลดไฟล์ที่บีบอัดไว้จาก ที่นี่ . (ในตัวอย่างจะเป็นการติดตั้ง HMVC สำหรับ CodeIgniter 2.1.0 ดาวน์โหลดเมื่อวันที่ 20 พ.ค. 2012 แต่ผมลองกับตัวเวอร์ชั่น 2.2 ก็ใช้งานได้) Step 2. คลายซิปไฟล์ที่ดาวน์โหลดแล้วคัดลอกไปไว้ที่โฟลเดอร์ ที่ติดตั้งตั้ง CodeIgniter เอาไว้ (คัดลอกเฉพาะโฟลเดอร์ core และ third_party ไปวางที่โฟลเดอร์ application ของ CodeIgniter โดยวางทับไปได้เลย) Step 3. สร้างโฟลเดอร์ชื่อ modules_core ในโฟลเดอร์ applications เพื่อใช้เก็บไฟล์ของ Module ต่างๆ Step 4. ขั้นตอนต่อไปให้เปิดไฟล์ application/config/config.php แล้วเพิ่มบรรทัดต่อไปนี้ $config['modules_locations'] = array(APPPATH.’modules_core/’ => ‘../modules_core/’,); (ต้องเปลี่ยนเครื่องหมาย ‘ เป็นแบบที่ใช้ในการเขียนโปรแกรมด้วยนะครับ ไม่งั้นจะเกิด error วิธีก็คือ ลบแล้วพิมพ์ลงไปใหม่) ทดสอบการทำงาน     ให้ลองสร้างโฟลเดอร์ใหม่ใน modules_core แล้วตั้งชื่อเป็น login

การเก็บข้อมูลรหัสผ่านสำหรับล็อกอินเราควรจะเข้ารหัส md5 ก่อน และใส่สีตีไข่ลงไปด้วย

การเข้ารหัสข้อมูลการล็อกอินก่อนเก็บลงฐานข้อมูลนั้น จะว่าสำคัญมั้ยก็ไม่เชิง เพราะมันเป็นเพียงการเพิ่มความเชื่อมันให้ผู้ใช้งานว่าจะไม่มีใครสามารถเห็นรหัสผ่านของเขาได้ เช่น ผู้ใช้งานอาจจะใช้รหัสผ่านเดียวกันนี้ในหลายๆเว็บไซต์ การที่มีใครคนใดคนหนึ่งรู้รหัสผ่าน ก็จะทำให้สามารถเข้าถึงข้อมูลในเว็บไซต์อื่นๆได้ และแน่นอนว่ารวมถึงเว็บไซต์ที่ปล่อยให้มีคนเห็นรหัสผ่านนี้ด้วย สำหรับการเข้ารหัสด้วย md5() ก่อนบันทึกในฐานข้อมูลดังโค๊ดด่านล่างนี้ <?php $ pass = " Hello1234 "; $ my_md5 = md5 ($ pass ); echo " <br/>ข้อความที่พิมพ์ : " , $ pass ; echo " <br/>รหัสที่ได้คือ : <u> " , $ my_md5 , " </u> "; ?> ผลลัพธ์ ข้อความที่พิมพ์ : Hello1234 รหัสที่ได้คือ : cbd357125a99321c2a08e0206a97622f ข้อมูลที่จะนำไปบันทึกคือ $ my_md5 ที่เข้ารหัสแล้วนั่นเอง กรณีที่มีแอดมินหรือผู้ใช้คนใดคนหนึ่งที่เข้าไปดูฐานข้อมูลได้ หรือเข้าไปยังหน้าข้อมูลผู้ใช้ได้และสามารถมองเห็นรหัสผ่านได้ก็จะเจอแต่ข้อความ cbd357125a99321c2a08e0206a97622f ก็