วันจันทร์ที่ 21 มกราคม พ.ศ. 2556

Cakephp กับ Form Validation ด้วย Javascript


       วันนี้ได้ลองศึกษาการทำ Form Validation หรือการตรวจสอบข้อมูลในฟอร์มกรอกข้อมูลด้วย Javascript ใน CakePHP ดูครับ โดยใช้ Plugin Validation ของ JQuery ซึ่งรองรับทุกตัวครับ แต่ที่ผมสนใจเป็นพิเศษคือจากบทความนี้ครับ http://bakery.cakephp.org/articles/mattc/2008/10/26/automagic-javascript-validation-helper แต่ก็มีปัญหาคือเป็นเวอร์ชั่นเก่า (อีกแล้ว) ก็เลยค้นหาต่อไป และไปเจอในเว็บนี้ https://github.com/mcurry/js_validate ปรากฏว่า ใช้ได้เลยครับ เลยขอยืมมาปรับใช้ซะหน่อย ความสามารถของมันคือ มันจะไปดึง Validation จากใน Model ใน CakePHP ของเรามาแปลงให้เป็น Validation ของ Javascript ได้เลย แต่จะมีปัญหากับการใช้ Regular  Expression เช่นถ้าใช้คำสั่ง ‘rule’=>’/^[0-9]+/i’  มันจะErrorทันที เพราะมันจะรองรับคำสั่งตรวจสอบพื้นฐานเท่านั้นครับ แต่ก็ไม่เป็นไร (พูดปลอบใจตัวเอง ^_^) เพราะคำสั่งตรวจสอบพื้นฐาน เช่น ตรวจสอบอีเมล,ตัวเลข,วันที่,อื่นๆ มีให้ค่อนข้างครบครันเลยทีเดียว

วันพุธที่ 16 มกราคม พ.ศ. 2556

วิธีติดตั้ง Ckeditor ใน Cakephp และการปรับแต่ง

ติดตั้ง Ckeditor ใน textarea ของ Cakephp
       บทความสอน PHP บทความนี้จะสอนวิธีติดตั้ง ckeditor ให้กับ cakephp (PHP Framework) กันครับ วิธีติดตั้งไม่ยากเลยครับ เพราะผมได้ทำตามในบทความนี้ครับ  http://bakery.cakephp.org/articles/Valkum/2009/11/08/ckeditor-3-x-new-fckeditor-version แต่ต้องปรับโค๊ดอีกนิดหน่อย เพราะบทความที่สอนมันเป็นเวอร์ชั่นเก่าครับ cakephp ของผม ตอนนี้ได้อัปเกรดเป็นเวอร์ชั่นล่าสุดแล้ว (2.2.5 ในตอนนี้คือเวอร์ชั่นล่าสุด) วิธีอัปเกรดก็ไม่ยากครับ แค่Copyโฟลเดอร์ lib มาทับของเดิม และ Copy โฟลเดอร์ Console ไปทับของเดิมที่อยู่ในโฟลเดอร์ app นั่นเองครับ หรือติดตั้งใหม่เลยก็ได้ครับ

      มาดูวิธีติดตั้ง Ckeditor ในTextareaของ cakephp กันครับ

1.อันดับแรกต้องไปดาวน์โหลด Ckeditor มาก่อนครับ ตามลิงค์นี้ครับ http://ckeditor.com/builder แนะนำให้ใช้ตัวเต็ม (Full version) เลยนะครับ โดยเลือกที่ Full แล้ว เลือกภาษา Thai ด้วยนะครับ และคลิกที่  Source (Big N’Slow) เราจะได้ตัวเต็มของมันมาครับ และกด Download ได้เลย ดูตามรูป

วันเสาร์ที่ 12 มกราคม พ.ศ. 2556

สอนประยุกต์ใช้ Google Chart Tools กับการแสดงรายงานสรุปยอดขายประจำเดือน (PHP MySQL)

       วันนี้ได้ลองประยุกต์ใช้ Google Chart Tools ในรายการสรุปยอดขายประจำเดือนดูครับ ทำให้รายงานมีสีสันและดูเข้าใจง่ายขึ้นครับ ว่ารายได้ในแต่ละเดือนมีแนวโน้มเป็นยังไงบ้าง ความจริงแล้วต้องมีรายงานประจำวันและรายงานประจำปีอีกครับที่ต้องทำ โดยใช้หลักการดึงข้อมูลจากฐานข้อมูลเดียวกันครับ เพียงแค่เปลี่ยนข้อมูลที่จะเอามาแสดงเท่านั้นว่าจะแสดงแบบวันหรือเดือนหรือปีครับ บทความนี้จะสอนฉพาะรายงานประจำเดือนก่อนครับ ถ้ามีเวลาผมจะสอนแสดงรายงานให้ครบทุกรายงานเลยครับ
      เมื่อเราได้เครื่องมือสร้าง Chart มาแล้ว ก็คือ Google Chart Tools ต่อมาให้เราเลือกรูปแบบกราฟให้เหมาะสมกับรายงานครับ โดยผมได้เลือก กราฟแบบแท่งแนวตั้งครับ เพราะจะทำให้เห็นแนวโน้มยอดขายจากซ้ายไปขวาครับ ว่ามีเพิ่มหรือลดลงไปเท่าไหร่ หรืออาจใช้กราฟแท่งแนวนอนก็ได้ครับแล้วแต่ความชอบ และกราฟแบบแนวตั้งและแนวนอนมันจะรองรับจำนวนแท่งของกราฟได้แตกต่างกันครับ กราฟแนวตั้งจะรองรับค่อนข้างจำกัดเพราะเราต้องFixความกว้างให้กับหน้าเว็บ ส่วนกราฟแนวนอนถ้าเราไม่Fixความสูง มันก็จะสามารถแสดงกราฟได้ไม่จำกัดเลยครับ ดังนั้นที่ผมเลือกกราฟแท่งตั้งเพราะผมรู้ข้อมูลว่ามันแสดงแค่ 12 แท่งเท่านั้น ก็คือเดือนทั้ง12เดือนนั้นเองครับ
    สำหรับฐานข้อมูลที่ใช้มาจากที่นี่เลยครับ-> http://php-for-ecommerce.blogspot.com/p/blog-page_18.html

วันจันทร์ที่ 7 มกราคม พ.ศ. 2556

เข้ารหัส Source Code ของเรา ไม่ให้คนอื่นเอาไปแก้ไขได้


       สำหรับคนที่ไม่ต้องการให้คนอื่นนำโค๊ด ที่เราพัฒนาด้วยความยากลำบาก ไปดัดแปลงเป็นของตัวเอง ความจริงก็มีวิธีอยู่หลายวิธีครับ อย่าง AROHA PHPencoder แต่มันจะเข้ารหัสได้แค่ PHP เท่านั้น ถ้าอยากให้เข้ารหัสภาษาอื่นด้วยล่ะทำยังไงดี??
       คำตอบก็คือใช้ตัวนี้เลยครับ http://dean.edwards.name/packer/ มันบอกว่ารองรับ .NET , Perl , Javascript ,PHP สามารถนำโค๊ดของเราไปใส่ในช่อง Paste -> แล้วเลือกที่ Base62 encode และติ๊กที่ Shrink variables โดยมันจะเข้ารหัสแบบ Base62 ครับ -> กดปุ่ม Pack ก็จะได้โค๊ดที่เข้ารหัสเรียบร้อยแล้วแสดงในช่องด้านล่าง ให้Copyไปวางทับโค๊ดเดิมของเราได้เลยครับ แต่ต้องทำสำรองโค๊ดที่ยังไม่เข้ารหัสเอาไว้ด้วยนะครับ เดี๋ยวจะแก้ไขไม่ได้ ^_^ แต่ก็ไม่ได้การันตีว่าจะสามารถป้องกันการแก้ไขโค๊ดของเราได้ 100% นะครับ เพราะมีการเข้ารหัสก็ต้องมีการถอดรหัสครับ แต่ต้องเป็นผู้ที่มีความรู้จริงๆจึงจะสามารถถอดรหัสได้