3/04/2562

แยกชื่อและนามสกุล



โดยปกติการป้อนข้อมูลใน Excel ควรป้อนแยกเซลให้เป็นข้อมูลหน่วย่อยที่สุดที่ยังคงมีความหมาย เช่น ชื่อนามสกุล ก็ควรป้อนแยกคำนำหน้า ชื่อ และนามสกุลออกจากกัน เพื่อให้สามารถนำไปประมวลผลได้ง่าย แต่ก็พบว่าผู้ใช้ Excel จำนวนมาก มักจะป้อนรวมในเซลเดียว ดังตัวอย่าง



การประมวลข้อมูลข้างต้น ควรแยกคำนำหน้า ชื่อ และนามสกุลออกจากกัน โดยเนื้อหานี้ขอนำเสนอวิธีการแยกชื่อ (รวมคำนำหน้า) ออกจากนามสกุลด้วยความสามารถแปลงข้อความเป็นคอลัมน์ – Text to columns ก่อน



เนื่องด้วยรูปแบบของข้อมูลจะแบ่งแยกระหว่างชื่อ (รวมคำนำหน้า) กับนามสกุลด้วยช่องว่าง จึงสามารถใช้ “ช่องว่าง” ให้เป็นประโยชน์ โดยเลือกข้อมูลที่ต้องการแยกชื่อและนามสกุล ดังภาพ



เลือกเมนูคำสั่ง Data, Text to columns



จากภาพโปรแกรมจะสอบถามว่า “ระหว่างข้อมูลที่จะแยก ใช้เงื่อนไขใดระหว่างตัวคั่น – Delimited หรือจำนวนอักขระ – Fixed width” กรณีให้เลือกเป็น Delimited จากนั้นคลิกปุ่ม Next



จอภาพถัดไป โปรแกรมจะให้ระบุว่า “ตัวคั่น” ที่ใช้คืออะไร กรณีนี้เลือกเป็น ช่องว่าง หรือ Space จะพบว่าโปรแกรมแยกชื่อและนามสกุลออกเป็น 2 ส่วน คลิกปุ่ม Finish จะปรากฏผล ดังนี้



อย่างไรก็ดีวิธีที่ถูกต้องคือ การป้อนข้อมูลให้ถูกต้องตั้งแรกนะครับ ไม่ควรมาเสียเวลาแปลงแบบนี้

จากเนื้อหา “แยกชื่อและนามสกุล” ที่ได้แนะนำไปก่อนหน้า หากมีเนื้อหาดังตัวอย่าง



จากเนื้อหา “แยกชื่อและนามสกุล” ที่ได้แนะนำไปก่อนหน้า หากมีเนื้อหาดังตัวอย่าง





และต้องการแยกคำนำหน้าชื่อ ชื่อ และนามสกุลเป็น 3 คอลัมน์ ดังนี้





จะต้องใช้ฟังก์ชันหลายฟังก์ชัน รวมทั้งเทคนิคการคำนวณแบบ Array ของ Excel ผสมผสานกัน โดยเริ่มต้นจาก





1) สร้างตารางข้อมูลเก็บคำนำชื่อที่เป็นไปได้ (สามารถเพิ่มเติมได้ภายหลัง)





จากนั้นกำหนด Range name ให้กับช่วงข้อมูลของรายการคำนำหน้าชื่อ กรณีตัวอย่างกำหนดชื่อ nametitle ให้กับช่วง B2:B10 ด้วยคำสั่ง Formulas, Define Name





2) เมื่อกำหนดพื้นที่รายการคำนำหน้าชื่อแล้ว ขั้นถัดไปก็จะเป็นการดึงนามสกุลออกมาก่อน ด้วยคำสั่ง =RIGHT(A2,LEN(A2)-FIND(” “,A2))





คำสั่ง =RIGHT(A2,LEN(A2)-FIND(” “,A2)) ประกอบด้วยคำสั่งซ้อน 3 คำสั่งคือ RIGHT, LEN และ FIND โดยมีความหมาย คือ
นำข้อมูลมาแสดงโดยดึงค่าจากตำแหน่งขวาสุด คำสั่ง RIGHT ที่มีรูปแบบคำสั่ง คือ =RIGHT(text,num_chars)
Text คือสตริงข้อความที่มีอักขระที่ต้องการแยก
num_chars ระบุจำนวนอักขระที่ต้องการแยก
กรณีนี้ num_chars ได้จากสูตร =LEN(A2)-FIND(” “,A2) คือเอาจำนวนอักขระทั้งหมด (LEN) มาลบด้วยตำแหน่งของช่องว่าง (FIND)
จำนวนอักขระทั้งหมด =LEN(A2) เท่ากับ 15
ตำแหน่งช่องว่าง =FIND(” “,A2) คิอ 7
15 – 7 = 8
ดังนั้นคำสั่ง RIGHT จึงเปรียบได้กับ =RIGHT(A2,8) นั่นเอง … ซึ่งหมายถึง ให้นำอักขระ 8 อักขระมาแสดงโดยดึงจากด้านขวาของข้อมูล


3) ดึง “ชื่อ” ออกมาใส่ในคอลัมน์ D ด้วยคำสั่ง =SUBSTITUTE(RIGHT(A2,MIN(LEN(SUBSTITUTE(A2,nametilte,””)))),E2,””)





โดยสูตรนี้ต้องป้อนแบบ Array ซึ่งก็คือการกดปุ่ม Ctrl + Shift + Enter แทนการกด Enter ปกติ โดยสูตรที่สูตร จะต้องมีเครื่องหมาย { } กำกับหน้าหลัง ดังนี้





4) จากนั้นจึงเป็นการดึงคำนำหน้า ด้วยคำสั่ง =SUBSTITUTE(SUBSTITUTE(A2,D2,””),E2,””)





เพียงเท่านี้ก็จะสามารถดึงค่าดังกล่าวออกมาได้ตามต้องการ สำหรับการนำไปใช้ ขอแนะนำให้ใช้การเลือกข้อมูลคำนำหน้า ชื่อ นามสกุลแล้วคัดลอก (Copy) จากนั้นนำไปวางแบบ “เฉพาะค่า Value” ก่อนประมวลผลนะครับ


หมายเหตุ … สูตรที่ใช้ในข้อ 3 และะ 4 ขอไม่อธิบายรายละเอียด อยากแนะนำให้ลองศึกษาและฝึกทีละคำสั่งดูนะครับ เพื่อให้เกิดความเข้าใจด้วยตนเอง

2/08/2562

วิธีการ Update PHP ของ AppServ เพื่อความปลอดภัย

สวัสดีครับ ช่วงนี้กำลังเป็นประเด็นหนาหูเกี่ยวกับ hacker กลุ่มที่ผมสังกัดอยู่เลย
เกี่ยวกับการยิง Apache 2.2 ที่ติดมากับ AppServ 2.5.10 (ตัวล่าสุดนั่นแหละ)
ซึ่งผลกระทบส่วนใหญ่ จะเป็นเว็บ IP Bonus ฟรี และเว็บเซิฟเวอร์เถื่อน และเว็บอื่นๆ ที่ใช้
AppServ 2.5.10 หรือต่ำกว่านั่นเองครับ (IP Bonus หลายเว็บที่ทางทีมผมทดสอบยิง ก็ยิงได้เกือบทุกเว็บเลย)

ซึ่งวิธีการ มันก็ง่าย จนใครหลายคนคาดไม่ถึงแหละครับ เป็น PHP Injection ธรรมดาๆ
(ส่วนนึงก็เกิดจากความประมาทของผู้เขียน script ด้วย แต่นั่นไม่ใช่ประเด็น)

โดยส่วนตัวแล้ว หากเป็น Windows Server ผมจะแนะนำให้ใช้ IIS มากกว่า (แนะนำ 7.5 บน 2008 R2)
ซึ่งเซิฟเวอร์ของ tah club เอง ก็ใช้ IIS 7.5 เช่นกันครับ แต่หลายๆ ท่าน ซึ่งอาจจะไม่มีความรู้ จึงติดตั้งระบบ
พวกนี้ไม่เป็น (ขนาดผมติดตั้งเอง ยังกินเวลาเป็นวันเลยครับ) เพราะฉะนั้น AppServ คือทางเลือกหนึ่งที่หลายๆ คนมอง
แต่แลกกับความปลอดภัยของเว็บนั้น ผมคิดว่า มันไม่คุ้มกันเลย (ข่าว appserv โดนแฮก มีให้เห็นอยู่ร่ำไป)

ก่อนอื่น สำหรับท่านที่ลง appserv ให้ปิด Register Globals เพื่อความปลอดภัยก่อนนะครับ (อย่าลืม restart apache ด้วย)
หมายเหตุ: คลิกที่รูป เพื่อดูรูปใหญ่ได้
หมายเหตุ 2: ในรูป เป็น Windows Server 2008 R2 หากเป็น Windows Server 2003 ให้่ำทำแบบเดียวกัน

โดยการไปที่ C:\Windows แล้วเปิด php.ini มา แก้ register_globals เป็น Off แล้วเซฟครับ จากนั้นอย่าลืม restart

Image

เอาหละครับ มาถึงการอัพเดท php กันซักที ซึ่งผมจะโชว์ให้ดูนะครับ ว่าถ้าโดนยิง จะเป็นแบบนี้
httpd.exe ใช้ CPU ไป 99% กว่าๆ เลย (ทำให้เว็บล่มไปในทันที)
Image

ขอบอกก่อนนะครับว่า มันเป็น PHP Injection ธรรมดาๆ ผมไม่ได้ใช้ ddos ยิงเลย (แต่วิธีการยิงขอไม่บอกนะครับ)

ก่อนอื่น เชค PHP Version ก่อนนะครับ โดยการสร้าง php ดังนี้
Code: Select all
<?php
phpinfo();
?>
Image

ซึ่งในรูปด้านบน ก็คือ PHP 5.2.6 ซึ่งก็คือตัวที่มีปัญหา PHP Injection Exploit นั่นเองครับ เราจะมาอัพเดทเป็น
php 5.2.17 กัน (ตัวนี้แก้ปัญหาแล้ว) ทำตามขั้นตอนได้เลยครับ

ก่อนอื่น Stop Apache ก่อน (Start > Run > services.msc)

Image

เข้าไปใน C:\AppServ เปลี่ยนชื่อโฟลเดอร์ php5 เป็นชื่ออื่นก่อน

Image

เสร็จแล้วไปที่ http://windows.php.net/download/ แล้วดาวน์โหลด PHP 5.2.17 VC6 x86 Thread Safe
โหลดแบบ zip นะครับ หรือกดโหลดตาม link นี้ได้เลย
http://windows.php.net/downloads/releas ... C6-x86.zip

หมายเหตุ: ไม่แนะนำ php 5.3 เพราะยังไม่รองรับ apache 2.2

โหลดเสร็จแล้ว แตกไฟล์ออกมา เปลี่ยนชื่อเป็นโฟลเดอร์ php5 ครับ

Image

Start Apache (Start > Run > services.msc)

Image

เสร็จแล้วครับ เชค phpinfo.php อีกที ว่าเป็น php 5.2.17 แล้ว ตามรูปครับ

Image

บั๊กยิงที่ว่านี้ เมื่อท่านอัพเดท server แล้ว ก็จะยิงไม่ได้แล้วครับ
และควรจะติดตามข่าวสารการ Update Software สม่ำเสมอ เพื่อรักษาความปลอดภัยของระบบ
ท่านเอง เนื่องจากคงไม่สนุกแน่ๆ ที่เว็บโดนแฮก จริงมั้ยครับ?

1/28/2562

สร้างและแชร์ QR CODE ง่ายๆ จาก Google URL Shortener

แนะนำการสร้าง qr-code ที่สามารถนับสถิติได้ ว่ามีการเข้าใช้งานกี่คลิก จาก platforms ใหนบ้างหรือเข้าจาก browser อะไร
วันนี้มีโอกาสได้แนะนำการสร้าง qr-code ไว้ใช้งาน ให้คุณหมอท่านหนึ่ง จริงๆ นี่ไม่ใช่เรื่องใหม่อะไร ขอสรุปมาไว้แบ่งปันสำหรับคนไม่รู้นะครับ
จริงๆ การสร้าง qr-code นั้นทำได้ง่ายมากๆ เลย มีเว็บไซต์ให้บริการ QR Code Generator เต็มไปหมด เบื้องต้นส่วนใหญ่จะฟรี แต่จะมี options เสริมอะไรแล้วแต่ผู้ให้บริการนั้นๆ ซึ้งอาจจะเก็บเงินเพิ่มเติมก็ได้

QR CODE ก็สามารถสร้างปัญหาให้เราได้

ปัญญามันมักจะเกิดกับตอนที่เราสร้าง qr-code แล้วเอาไปพิมพ์ในหนังสือหรือแผ่นพับโบร์ชัวต่างๆ ตรงนี้มันจะต้องวางแผนดีๆ เพราะถ้าหากพิมพ์ไปแล้ว ก็จะแก้ไขไม่ได้ เคยมีกรณีที่ผู้ใช้งานก็สร้าง qr-code จากเว็บทั่วๆ ไปแล้วไม่ได้อ่านดีๆ ว่าเว็บนั้นจำกัดอะไรมั้ย ปรากฎว่าโดนจำกัดการเข้าใช้งาน เช่น เข้าอ่านได้ 1000 คลิก จากนั้นต้องเสียเงิน จะเปลี่ยนก็ไม่ได้เพราะสั่งพิมพ์ไปหมดแล้ว ตรงนี้ต้องระวังดีๆ ครับ! ลองดูว่า qr-code ที่เราสร้างแล้วเวลาอ่านมันได้ url เดิมหรือค่าเดิมจากที่เราสร้างใหม ถ้าไม่ใช่อาจจะโดน redirect ไปที่เว็บอื่นๆ ก่อน ทำให้เค้าจำกัดการเข้าใช้งานเราได้

สร้าง QR CODE ง่ายๆ จาก Google URL Shortener

ถ้าไม่อยากเจอปัญหากวนใจในภายหลังลองใช้ Google URL Shortener ได้ครับ การใช้งานง่ายๆ มากเลย
ให้เข้าไปที่ Google URL Shortener จากนั้นก็ login ด้วย google account ของเรา ใส่ url ที่เราต้องการทำเป็น qr-code กด Shorten URL ก็จะได้ข้อมูลรายการที่เราสร้างขึ้นมาประมาณนี้
จากนั้นด้านท้ายแถวจะมีปุ่ม options ขึ้นมา ให้เราเลือก QR Code
จะได้ภาพ QR Code แบบนี้ เราสามารถ save ไปใช้งานต่อได้
ความเจ๋งของมันอยู่ที่เราสามารถ track ได้ว่ามีคนเข้าผ่าน QR Code ของกี่คนแล้วจากที่ใหนบ้าง สามารถดูสถิติต่างๆ ได้ เพียงแค่เราคลิกที่ Analytics Data
จะพบกับหน้า Dashboard ให้เราดูข้อมูลต่างๆ ที่สำคัญมันฟรีนะ ^^
ลองใช้งานกันดูครับ.