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

บทความ

กำลังแสดงโพสต์จาก ตุลาคม, 2018

มาปรับแต่งโค้ดให้ปลอดภัยด้วย rips-0.55 กันเถอะ

วิธีใช้คร่าวๆนะครับ 1.ดาวน์โหลด http://rips-scanner.sourceforge.net/ 2. คลายซิปไว้ที่เว็บไดเรกทอรี่ตรงไหนก็ได้อ แอดมินสร้าง /labs/ ขึ้นมาอีกที เวลาเข้าใช้ก็ http://localhost/labs/rips-0.55 3. กำหนด path / file: ที่ต้องการทดสอบ แนะนำให้คัดลอกโปรเจ็กต์เรามาว่างใน /labs เช่นกัน แล้วก็เอา PATH เต็มๆมาใส่ เช่น D:/www/labs/myproject 4. กด scan รอดูผลลัพธ์ ในขั้นตอนที่ 3 ถ้าต้องการตรวจเฉพาะบางโฟลเดอร์ก็ / ชื่อโฟลเดอร์เพิ่มเข้าไป ก็จะ scan เร็วขึ้น พอสรุปปัญหาแต่ละไฟล์แต่ละจุดออกมา ก็จำ Line ของไฟล์นั้นๆ ไปแก้ใน project จริงๆของเรา ดาวน์โหลดโปรแกรม rips-0.55 ได้ที่ http://rips-scanner.sourceforge.net/

PHP การอัพเกรดเวอร์ชั่น 7.1 กับปัญหาของ Codeigniter + TCPDF + FPDI

ปัญหาหลังอัพเกรด PHP 7.1 Declaration of PdfTemplate::addPage() Declaration of PdfTemplate::SetFont() Declaration of PdfTemplate::Link() Declaration of PdfTemplate::Image() พอรันหน้ารายงาน PDF ปุ๊บ เจอ Error message มาเป็นกระบุง!! แต่อย่าเพิ่งตกใจไป เข้าไปตาม File และ Line ที่ระบุเลย Let's Go++ เอาล่ะ ตรงดิ่งไปที่ บรรทัด 449 ??????? ไม่พบอะไรเลย สุดซอย ก็ถอยออกมาก่อน มาเริ่มจากฟังก์ชั่นแรก ก็คือ Declaration of PdfTemplate::addPage เอาไปค้นใน Google เลย แล้วมองหาเว็บ StackOverFlow ก็ได้หน้านี้มา (หาอยู่นานมาก >_<) https://stackoverflow.com/questions/19912591/fpdi-tcpdf-problems หลังจากลองแก้ไขตามกระทู้นี้ก็พบว่า "ใช้ได้จริงด้วย" ก็นั่งพินิจพิเคราะห์อยู่นานสองนาน จนแน่ใจว่า "แค่คัดลอกฟังก์ชั่นที่อยู่หลังคำอธิบาย Error มาวางแทนทีแค่นั้นเอง" (ตามรูปด้านบนนี้) หลังจากครบทั้ง 4 ฟังก์ชั่น ก็จะเจอ Error ตัวใหม่ๆ O_o' ก็ได้ใจความว่า ชื่อฟังก์ชั่นต้องไม่เป็นชื่อเดียวกับชื่อคลาสนั่นเอง (เปล่าหรอก จริงๆผมไม่ได้แปล แค่ก...

PHPEXCEL getCalculatedValue or getFormattedValue returns fatal error

PHPEXCEL กับปัญหาเรียกใช้งาน rangeToArray() ที่มีการผสานเซลล์ไม่ได้ ก่อนหน้านี้ใช้ PHP 5.5 ก็ไม่เคยมีปัญหาเรื่องเซลล์ที่ผสานกัน จนลองอัพเกรด PHP เป็น 7.1 ก็พบว่า ฟังก์ชั่น rangeToArray() ใช้ได้เฉพาะแถวที่ไม่ผสานเท่านั้น $rowTotalCheck = $sheet->rangeToArray ( 'A3:' . $highestColumn . '3', NULL, TRUE, FALSE ); $col = $rowTotalCheck[0]; $total_check = $col[6]; $total_dif     = $col[7];  ก็เลยต้องเปลี่ยนไปใช้ getCell('G3')->getValue(); $total_check = $sheet->getCell('G3')->getValue(); $total_dif= $sheet->getCell('I3')->getValue(); แต่ปรากฏว่า I3 เป็นสูตร SUM() ก็ได้ออกมาเป็นข้อความเฉยๆ ก็เลยต้องหากันต่อไปจนได้ฟังก์ชั่น getCell('I3')->getOldCalculatedValue() $total_dif     = $sheet->getCell('I3')->getOldCalculatedValue(); เมื่อลองรันดูก็พบว่าผ่านฉลุย อ้างอิง https://stackoverflow.com/questions/29966752/phpexcel-getcalculatedvalue-or-getformattedvalue-returns-fatal-error อ่านเรื่อง...

CodeIgniter 3 กับวิธีแก้ปัญหา PHP 7.1 ยกเลิกฟัง์กชั่น mcrypt_encrypt is deprecated

Deprecated function !! mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_create_iv() สำหรับการแก้ไขก็คือ ใช้ฟังก์ชั่น openssl_encrypt() และ openssl_decrypt() แทนที่ฟังก์เดิม สร้างไฟล์ MY_Encrypt.php ไว้ที่ไดเรกทอรี่ application/libraries/MY_Encrypt.php <?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); /**  * Override for solve deprecated function  * mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_create_iv()  */ class MY_Encrypt extends CI_Encrypt {     public function __construct()     {         parent::__construct();     }     /**      * Encrypt using Mcrypt      *      * @param    string      * @param    string      * @return    string      */     public function mcrypt_en...

jQuery กับวิธีกำหนด checked ให้กับ checkbox ตามค่าที่บันทึกในฐานข้อมูล

jQuery selector by Attrubute matching value จากภาพด้านบนนั้น คือการเลือกตัวเลือกตามข้อมูลที่อยู่ในฐานข้อมูล เช่น ฟิลด์ level มีค่า 2 เมื่อนำมาใส่ในแอตทริบิวต์ data-record-value ของตัวเลือกทุกตัวเรียบร้อย เราสามารถตรวจสอบ checkbox ตัวที่มีค่า value ตรงกับในฐานข้อมูลที่ดึงออกมา หรือตรงกับแอตทริบิวต์ที่สร้างขึ้นมาด้วย jQuery ดังนี้             $( "input[type='checkbox']" ).prop( "checked", function( i, val ) {                 return $(this).val() == $(this).data('record-value');             }); โค้ดฉบับเต็มสำหรับนำไปทดสอบกันดูครับ ลองเปลี่ยนค่าใน $row['level'] จาก 2 เป็น 1 และ 3 ตามลำดับดูนะครับ <?php $row['level'] = 2; ?> <html lang="en">   <head>     <meta charset="utf-8">     <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>   </head> <body>     ...

PHP ตรวจสอบรูปแบบเวลา HH:MM:SS

PHP Validate Time Format <?php function isTime($time) { if(strlen($time) == 5){ return preg_match("#([0-1]{1}[0-9]{1}|[2]{1}[0-3]{1}):[0-5]{1}[0-9]{1}#", $time); }elseif(strlen($time) == 8){ return preg_match("#([0-1]{1}[0-9]{1}|[2]{1}[0-3]{1}):[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}#", $time); } return false; } $time1 = '00:12:60'; $time2 = '24:12:14'; $time3 = '15:12:21'; echo "<br>TEST FALSE , isTime('$time1') = " . (isTime($time1) > 0? 'TRUE' : 'FALSE'); echo "<br>TEST FALSE , isTime('$time2') = " . (isTime($time2) > 0? 'TRUE' : 'FALSE'); echo "<br>TEST <b>TRUE</b> , isTime('$time3') = " . (isTime($time3) > 0? '<b>TRUE</b>' : 'FALSE'); ?> ผลลัพธ์ อ้างอิง http://burnignorance.com/php-programming-tips/how-to-check-time-format-hhmm-in-php/

Google Pie Chart ต่อแขนต่อขา ชี้ข้อมูลแต่ละส่วน จัดป้ายกำกับให้ดูสบายตา

Google Pie Chart หลังจากค้นหาอยู่นาน เพราะคิดไม่ออกว่าหลังจากทดสอบโค้ดนี้เสร็จแล้วไปเก็บไว้ไหน พอค้นเจอก็รีบจัดการโพสต์ไว้บนบล็อกซะเลย <html>   <head>     <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>     <script type="text/javascript">       google.charts.load("current", {packages:["corechart"]});       google.charts.setOnLoadCallback(drawChart);       function drawChart() {         var data = google.visualization.arrayToDataTable([           ['Task', 'Hours per Day'],           ['Work',     8],           ['Eat',      2],           ...

ค้นหาในเว็บไซต์

เนื้อเพลงที่ได้รับความนิยม ในรอบสัปดาห์

PHP CI MANIA 0.8.4.09 แก้ไขปัญหา Import ไฟล์ Excel แล้วไม่สามารถบันทึกได้ + เพิ่มตัวเลือก Validate บางฟิลด์

- เพิ่มตัวเลือก Validate บางฟิลด์ กรณีละเว้นการตรวจสอบให้เอาเครื่องหมายเช็คถูกออก -  แก้ไขปัญหา Import ไฟล์ Excel แล้วไม่สามารถบันทึกได้ สมาชิก Premium ดาวน์โหลดได้ที่ http://fastcoding.phpcodemania.com/index.php/downloads PHP  CI  MANIA   - PHP Code Generator  โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม" ราคาสุดคุ้ม    http://fastcoding.phpcodemania.com

การทำ Index ให้ MySQL Database เพื่อเพิ่มความเร็ว

สำหรับตัวอย่างนี้จะเป็นการ JOIN ตาราง 2 ตาราง 1. tb_reject_hd 2. tb_reject_desc ซึ่งจะเชื่อมกันด้วยฟิลด์ docno จะเห็นว่าเราสามารถคิวรี่เรียกข้อมูลออกมาได้ตอนที่ยังไม่ใส่ ORDER BY แต่เมื่อใส่ ORDER BY เข้าไป จะหมุนค้างจนหน้าเว็บหยุดทำงาน จากนั้นก็ลองเพิ่ม INDEX ให้กับฟิลด์ docno ในตาราง tb_reject_desc  ซึ่งในตัวอย่างนี้จะสร้างตารางใหม่ขึ้นมาจากตารางเดิม เปลี่ยนชื่อเป็น tb_reject_desc_with_index และทำการเพิ่ม INDEX KEY เข้าไป เมื่อทดสอบคิวรี่แบบมี ORDER BY จะเห็นว่าสามารถแสดงผลได้ทันที จากการสังเกตตัวเลขเวลาในการประมวลผล จะเห็นได้ว่าแบบไม่ใช้ ORDER BY จะทำงานเร็วกว่า แต่ในการทำงานส่วนใหญ่ก็มักจะต้องใช้ ORDER BY อย่างหลีกเลี่ยงไม่ได้ เช่นกรณีค้นหา แบบเรียงลำดับ ตัวอย่างโค้ดคิวรี่ข้อมูลจากตารางที่ Add Index Key แล้ว <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Add Index Key</title> </head> <body> <h2>ORDER BY with ...

การสร้างเว็บไซต์ในปี 2023 นั้นจะต้องคำนึงถึงอะไรบ้าง

การสร้างเว็บไซต์ในปี 2023 นั้นจะต้องคำนึงถึงความเปลี่ยนแปลงของเทคโนโลยีและแนวโน้มการใช้งานของผู้ใช้ใหม่ๆ ดังนั้น นี่คือเทคนิคที่สามารถช่วยให้การสร้างเว็บไซต์ในปี 2023 เป็นไปได้อย่างรวดเร็วและเป็นประสิทธิภาพ: 1. ใช้ Responsive Design: การออกแบบเว็บไซต์ให้สามารถปรับขนาดได้ตามขนาดของหน้าจอของอุปกรณ์ต่างๆ เช่น โทรศัพท์มือถือ แท็บเล็ต และคอมพิวเตอร์ เพื่อให้ผู้ใช้สามารถเข้าถึงและใช้งานได้ง่ายและสะดวก 2. ใช้โครงสร้างของ HTML5: การใช้โครงสร้าง HTML5 จะช่วยให้เว็บไซต์ของคุณมีประสิทธิภาพและปรับปรุงในเรื่องของการเข้าถึงข้อมูล การใช้งานและความปลอดภัย 3. ใช้ CSS Grids หรือ Flexbox: การใช้ CSS Grids หรือ Flexbox จะช่วยให้ง่ายต่อการจัดหน้าเว็บไซต์ และสามารถปรับแต่งรูปแบบของเว็บไซต์ได้ง่ายขึ้น 4. ใช้ JavaScript Frameworks: การใช้ JavaScript Frameworks เช่น React, Angular, หรือ Vue.js จะช่วยให้สามารถสร้างเว็บไซต์ที่เป็น interactive และมีประสิทธิภาพได้อย่างรวดเร็ว 5. ใช้ Content Management Systems (CMS): การใช้ CMS เช่น WordPress, Joomla, หรือ Drupal จะช่วยให้สามารถสร้างเว็บไซต์ได้อย่างร PHP  C...

แจกโค้ด PHP : รวมลิงค์ แจกฟรี!! ตัวอย่างโปรเจ็กต์ ที่พัฒนาด้วย PHP

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ  และด้านล่างนี้ก็เป็น Source Code PHP ระบบต่างๆ ที่มีเหล่าผู้ใจดีแจกฟรี!! ให้นำไปลองใช้ลองศึกษากันครับ แจกฟรี  !! ตัวอย่างการ  PHP  Booking # จองห้องประชุม  ผ่านเว็บครับ http://www.thaicreate.com/php/forum/090558.html ระบบแบบสอบถาม https://www.thaicreate.com/php/forum/099342.html แจก code!! การทำประเมินออนไลน์มี ไว้สำหรับพัฒนาต่อยอด https://www.thaicreate.com/php/forum/102203.html แจกฟรี PHP CodeIgniter CMS ให้ทุกท่านได้ลอง (รองรับ Responsive) http://www.thaicreate.com/php/forum/122929.html โดย : https://www.cszcms.com/ แจก PHP : ระบบยืม-คืนเอกสาร (จากตัวอย่าง เอกสารข้อมูลวัตถุดิบสินค้า) http://www.thaicreate.com/php/forum/103428.html แจกระบบ PHP Shopping Cart ระบบตะกร้าสินค้า ระบบสั่งซื้อ มีระบบตัดสต๊อก, สั่งซื้อวัตถุดิบคงเหลือ ht...

จัดระเบียบโค้ด ใน Notepad++ (Auto indentation plugin)

เวลาเขียนโค้ด แล้วไม่ได้จัดรูปแบบ หรือเอาโค้ดจาก Text Editor หนึ่งมาใช้ในอีกตัวหนึ่งก็มีโอกาสที่ Tab หรือ Space bar จะต่างกัน แล้วเราจะมานั่ง TAB เองก็คงไม่ไหว จึงจำเป็นต้องหา Plugin เข้ามาช่วย ลองค้นดูก็เจอกับกระทู้นี้ >> แม้หน้าตาจะไม่ตรงกันแต่หลักๆก็คือเพิ่ม Plugins เข้าไปชื่อ Indent By fold อ่านเต็มๆได้ที่นี่ https://softwarerecs.stackexchange.com/questions/1496/auto-indentation-plugin-for-notepad

PHP + Fullcalendar กับ MySQL

หลักการทำงาน เรียกข้อมูลจากตาราง tb_event ด้วยฟังก์ชั่นของ MySQLi ข้อมูลจากฐานข้อมูลจะถูกวนลูปเก็บไว้ใน $data และจะถูกส่งไปที่ Fullcalendar ด้วยการแปลงข้อมูลจาก PHP ให้อยู่ในรูปแบบ JSON อาร์เรย์ด้วยฟังก์ชั่น json_encode()

ตัวอย่างการปรับแต่ง ความกว้าง-ความสูง ของ Select Box ใน PHP CI MANIA (CodeIgniter + Bootstrap + Select2) (Option List)

ตัวอย่างการปรับแต่งความกว้างของ Select Box ที่ทำงานกับ Select2() ค่าเริ่มต้นในระบบ PHP CI MANIA จะกำหนดเป็น Auto คือปรับขนาดตามข้อมูลที่แสดง ดังนั้น ความกว้างจะสั้นยาว ไม่คงที่แล้วแต่ข้อมูลที่เลือก หากต้องการกำหนดค่าคงที่ ให้ปรับเปลี่ยนโดยการค้นหา setDropdownList() หรือค้นหาชื่อ Select box ตัวนั้นๆ เพราะอาจจะมีการกำหนดหลายที่ด้วยคำสั่ง select2() เพิ่มเติม หลังจากทดลองใส่พารามิเตอร์ตัวที่สอง เป็นความยาว 600 เมื่อบันทึก และกลับมารีเฟรชที่หน้าเว็บก็จะพบว่าความกว้างของ Select box ได้เปลี่ยนแปลงตามต้องการ สำหรับการปรับความสูง ใช้ CSS กำหนดดังนี้ /* Select2 */ .select2-container .select2-choice { height: 38px; line-height: 36px; } .select2-container .select2-choice .select2-arrow b { background-position: 0 5px; } ถ้าจะให้มีผลทุกที่ ให้ใส่ไว้ที่ Template ที่เราใช้งานเช่น ไฟล์ template/ sb-admin-bs4 /homepage_view.php sb-admin-bs4  คือโฟลเดอร์ Template ที่เลือกใช้ homepage_view.php   คือไฟล์ที่เป็นหน้า Homepage หลักของเรามีผลกับทุกหน้า ...

แก้ปัญหา Xampp เข้าผ่าน IP จากเครื่องอื่นไม่ได้ โดยการเปิด Firewall เชื่อมต่อ httpd ได้

กรณีที่ติดตั้ง Xampp แล้วเปิดจากเครื่องอื่นๆผ่าน IP ไม่ได้ ให้ทำการเปิด Firewall ในเครื่องที่ติดตั้ง xampp เพื่ออนุญาตให้เครื่องอื่นเข้าถึงได้ คลิกเมนู ค้นหา แล้วพิมพ์คำว่า firewall แล้วเลือกเมนู Firewall & network protection คลิกที่เมนู Allow an app through firewall คลิกที่ปุ่ม Change settings เลือกทั้ง Private และ Public (ถ้าไม่มีให้กดที่ปุ่ม Allow another app... เพื่อเพิ่ม httpd.exe ใน Path เฉพาะของเรา กรณีที่ไม่ได้ติดตั้ง) (สามารถเปิดดูรายละเอียด Path ของรายการที่แสดงได้ โดยคลิกปุ่ม Details...)   จากนั้นกด OK   ลองเข้าจากอีกเครื่องด้วย IP อีกครั้ง ก็จะพบว่าสามารถเข้าถึงหน้าเว็บที่ต้องการได้เรียบร้อย ที่มา : https://www.youtube.com/watch?v=KIYpkDy34DY   บทความที่เกี่ยวข้อง แก้ปัญหาการเปิด Firewall ทำให้ Client เชื่อมต่อ MySQL ไม่ได้ https://phpcodemania.blogspot.com/2021/04/xampp-ip-firewall-httpd.html   PHP  CI  MANIA   - PHP Code Generator  โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม" ราคาสุดคุ้ม    http://fastcoding...

วิธีแก้ไข JavaScript โดยไม่ต้อง Refresh หน้าเว็บใหม่

แก้ไข JavaScript โดยไม่ต้อง Refresh เป็นปกติทุกครั้งที่แก้ไขโค้ด JavaScript เราจำเป็นจะต้องรีเฟรชหน้าเว็บใหม่ทุกครั้ง แต่วันนี้ผมจะมาแนะนำวิธีรัน JavaScript ให้พร้อมใช้งานโดยไม่ต้องโหลดหน้าเว็บใหม่มาแนะนำครับ (สำหรับกรณีที่กำลังป้อนข้อมูลแบบฟอร์ม แล้วไม่อยากป้อนใหม่ เวลาที่ JavaScript error) ( แก้ปัญหาเวลาแก้ไข JavaScrip, CSS อัพขึ้นโฮสต์แล้วต้องกด CTRL + F5 เพื่อโหลดไฟล์ใหม่ทุกครั้ง ) ปัญหาเริ่มจากกดปุ่มลบ แล้ว Page not found  (หรือกรณี Event ใดๆ ที่กดปุ่มแล้ว JavaScript ไม่ทำงาน) ลองตรวจสอบ URL ที่ส่งไปเป็น / remove_price ซึ่งเกิดจากการระบุในไฟล์ JavaScript ไม่ตรงกับหน้าเว็บ เมื่อเปิดไปที่ไฟล์ PHP ในหน้าเว็บสำหรับลบราคา ปรากฏว่า URL ที่ถูกต้องคือต้องลงท้ายด้วย / removePrice ดังนั้นก็ต้องกลับไปทำการแก้ไขในไฟล์ .js ให้เป็น URL ที่ถูกต้อง  แต่ JavaScript เมื่อแก้ไขเสร็จเราจะต้อง Refresh หน้าเว็บเพื่อโหลดสคริปต์ใหม่ ซึ่งบางทีเราก็แก้ไขแค่จุดเดียว หากไม่อยากเสียเวลาโหลดใหม่ เราก็คัดลอกโค้ดเฉพาะ Function ที่เราแก้ไข เอาไปรันใน...

PHP เบื้องต้น | รวมวิดีโอสอนเขียนโปรแกรม PHP & MySQL

1. พื้นฐาน PHP     1.1  โครงสร้างการเขียน PHP ร่วมกับ HTML     1 .2  Selection Structure : การเขียนโปรแกรมแบบทางเลือก     1. 3  ตัวแปร (Variable) และ ค่าคงที่ (Constant)     1.4  ตัวดำเนินการ (Operator)     1.5  เครื่องหมาย Single Quote / Double Quote และ Escape Sequence     1.6  Repetition Structure (การเขียนโปรแกรมวนซ้ำ)          1.7  การแทรกโค้ PHP ส่วนต่างๆของ HTML     1.8  PHP Function 2. PHP MySQLi CRUD : การจัดการฐานข้อมูล MySQL เบื้องต้น      2.1 : การบันทึกข้อมูลด้วย MySQLi Function      2.2 การค้นหาและแสดงข้อมูลในรูปแบบตาราง 1/2     2.3  การค้นหาและแสดงข้อมูลในรูปแบบตาราง 2/2      2. 4 การแก้ไขข้อมูลด้วยคำสั่ง UPDATE     2. 5 การลบข้อมูลจากฐานข้อมูล     2. 6 การป้องกัน SQL Injection ด้วยการใช้ prepare และ bindparam           2.7 กา...

ค้นหาบล็อกนี้