เป็นสมาชิกเมื่อ: 18 ธ.ค. 2009
บางครั้งการส่งข้อมูลแบบ AJAX จากฟอร์มส่งไปประมวลผลใน Controller แบบ POST (อาจจะไม่ปลอดภัยเท่าไร) เกิดปัญหา Forbidden ทำให้ไม่สามารถส่งข้อมูลได้ เนื่องจากติดเรื่อง CSRF ป้องกันอยู่ แต่ก็สามารถทำการยกเลิก CSRF ได้ โดยกำหนดใน Action ของ Controller หรือ กำหนดใน method beforeAction() ได้เช่นกัน ตัวอ...
เราสามารถสร้างการแจ้งเตือนจากเว็บไซต์เราเข้า LINE ของลูกค้าได้ผ่าน LINE Notify แบบ 1-1-Chat หลักการทำงาน ขั้นแรก ลูกค้าร้องข้อเชื่อมต่อกับ Service ของเราผ่านเว็บไซต์เราเพื่อทำ Authorize โดยเข้าระบบแล้วอนุญาตการเชื่อมต่อกับ Service เรา ขั้นที่สอง หลังจากลูกค้าอนุญาตแล้วระ...
รหัส เรื่อง ผู้ผลิตรายการ จังหวัด เว็บ 1 เครื่องพ่นปุ๋ยไฟฟ้าทำเอง รักบ้านเกิด ลำปาง https://www.rakbankerd.com/vdo.php?id=2316 2 เครื่องสูบน้ำพลังแสงอาทิตย์ รักบ้านเกิด บุรีรัมย์ https://www.rakbankerd.com/vd...
ในวันที่ 10 ที่ผ่านมา Flutter ออก version 1.7.8 +hotfix.3 โดยรองรับ AndroidX และปรับปรุงสำหรับ Google Play ที่มีการออกนโยบายให้ App รองรับ 64bit นอกจากนั้นยังมีการปรับแก้ไข bug ต่างๆ จากผู้ใช้งานที่มีการรายงานเข้ามาอีกด้วย สามารถ upgrade flutter ได้หากเคยติดตั้ง flutter มาแล้วโดยใช้คำสั่ง&nbs...
เริ่มวันที่ 1 สิงหาคม 2562 นี้ Google ประกาศให้นักพัฒนาที่เผยแพร่ App ใน Google Play ให้สร้างหรือคอมไพล App ในเวอร์ชั่นรองรับสถาปัตยกรรม 64bit ด้วย ซึ่งมีความเร็วดีกว่าและเพื่อประสบการณ์ที่ดีกับผู้ใช้ โดยการเพิ่มเวอร์ชั่น 64bit นี้จะช่วยเพิ่มประสิทธิภาพการทำงาน เพื่อรองรับเทคโนโล...
ในบทเรียนรู้นี้เรามาสร้าง JWT สำหรับให้บริการข้อมูลกับ Client ในแบบต่างๆ เช่น Web Application, Mobile Application หรือการเชื่อมต่อไปยัง Application อื่นๆ ได้เช่นกัน เริ่มจากติดตั้ง Package PHP JWT ซึ่งมีมากมาย ในที่นี้จะใช้ Package ที่สร้างจาก Firebase โดยเปิดไฟล์ composer.json จากนั้นเพิ่ม...
บทเรียนรู้นี้เราสามารถสร้าง QR Code แบบรูปภาพได้ โดยใช้ package ในการ Generate QR Code โดยติดตั้ง package php-qrcode ดังนี้ "chillerlan/php-qrcode": "^3.1" ทดลองเขียนโปรแกรมในการ Generate QR Code ตัวอย่างนี้จะเขียนใน SiteController.php โดยสร้าง action Qr ดังนี้ use chillerlan\QRCode\QRC...
ในบทเรียนรู้นี้ เรามาทำการติดตั้ง package CKEditor สำหรับเป็นตัวจัดการข้อความต่างๆ เช่นการกำหนดค่าตัวหนา ตัวเอง ตัวขีดเส้นใต้ เป็นต้น และนอกจากนั้นจะได้เรียนรู้การติดตั้งตัว File Browser ที่ทำงานร่วมกันกับ CKEditor ได้อย่างลงตัว ไปเริ่มกันเลย ติดตั้ง Package สำหรับ package ที่เกี่ยวข้องสามารถต...
Splash Screen เป็นหน้า page เมื่อเรียกใช้งาน App ครั้งแรก โดยใช้ package splashscreen โดยเปิดไฟล์ pubspec.yaml แล้วเพิ่ม splashscreen: any dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class f...
สำหรับบทเรียนรู้นี้เป็นการสร้าง API Provider สำหรับการเรียก API เพื่อนำข้อมูลมาแสดงที่ List View สำหรับตัวอย่างการใช้งาน แต่ก่อนอื่นให้ทำการติดตั้ง package เพิ่มเติมก่อนคือ http: any intl: any html2md: any flutter_markdown: any โดยเปิดไฟล์ pubspec.yaml จากนั้นเพิ่ม package ล...
ใน Apache หากมีการ request worker มากๆ อาจทำให้ระบบไม่สามารถทำงานได้ โดยเมื่อเปิด error log จะปรากฏข้อความลักษณะนี้ [mpm_prefork:error] [pid 9489] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting วิธีการแก้โดยการเปิดไฟล์ cofig/extra/ht...
การสร้าง Project Flutter ใหม่ สามารถใช้ terminal โดยการพิมพ์คำสั่ง flutter create project_name ในที่นี้จะสร้าง project ชื่อ example flutter create example จะพบหน้าจอดังนี้ จากนั้นพิมพ์คำสั่ง cd example และสั่ง flutter run จะพบหน้าจอดังนี้
เรียนรู้การเขียน switch statement ในภาษา Dart void main() { printError(NetworkError.badURL); } enum NetworkError { badURL, timeout, resourceNotAvilable } void printError(NetworkError error) { switch (error) { case NetworkError.badURL: print('bad url');...
Enumeration เปรียบเสมือนการ fix ค่าไว้ใช้งาน ซึ่งเป็นการกำหนดค่าไว้ล่วงหน้า ตัวอย่าง void main() { printError(NetworkError.badURL); } enum NetworkError { badURL, timeout, resourceNotAvilable } void printError(NetworkError error) { if(error == NetworkError.badURL){...
fold เป็น function ที่ไม่มีชื่อ fold(ค่าเริ่มต้น, (parameter) => function body); void main() { final s = [ 1, 2, 3, 4 ]; print(sum(s)); } int sum(List<int> val) { return val.fold(0, (result, val) => result + val); } ผลลัพท์ 10 ดูเพิ่มเติม
เรียนรู้การเขียน for loop void main() { final s = [ 1, 2, 3, 4 ]; print(sum(s)); } int sum(List<int> val) { int i = 0; int result = 0; for(int i = 0; i < val.length; i++) { result += val[i]; } return result; } ผลลัพท์ 10 เราสามารถเขี...
เรียนรู้การใช้งาน while loop ในภาษา Dart void main() { final s = [ 1, 2, 3, 4 ]; print(sum(s)); } int sum(List<int> val) { int i = 0; int result = 0; while(i < val.length) { result += val[i]; i++; } return result; } ผลลัพท์ 10 ...
การเขียน control flow ในลักษณะ if else ดังนี้ if(condition){ // condition true }else{ // condition false } ตัวอย่าง void main() { printOddEven(4); } void printOddEven(int val) { if(val % 2 == 0){ print('$val is even'); } else { print('$val is odd'); }...
การกำหนด Type annotations ให้กับ list และ map ช่วยทำให้โปรแกรมมีความถูกต้องสมบูรณ์มากขึ้น ด้วยการกำหนด <type> ตัวอย่างเช่น void main() { var primeNumbers = List<int>(); var person = <String, dynamic>{ 'name': 'Manop Kongoon', 'age': 37, 'height': 1.76...