ใช้ recaptcha ของ google กับ site ใหม่

recaptcha สำหรับป้องกันหุ่นยนต์
recaptcha สำหรับป้องกันหุ่นยนต์
25 ก.พ.59 วันนี้ทำงานคอมพิวเตอร์เสร็จไปอีกงานหนึ่ง
คือ เพื่อนต้องการมีระบบอัพโหลดแฟ้มส่งบทความวิชาการ
ในเว็บไซต์ journal ซึ่งเป็นเงื่อนไขหนึ่งในการส่งวารสาร
เข้าไปใน TCI Database พร้อมกับระบบเว็บบทความที่ไม่เป็น Static
จากตัวอย่างที่เพื่อนให้ดู ก็เห็นว่าใช้ WordPress
1. หา WordPress 4.4.2 มาลงในเครื่องบริการของเพื่อน
ก็ปรับแต่งและเลือกธีม ผมเลือก Twenty Fifteen แบบเมนูซ้าย
เพิ่ม plugin : disable comment
การสร้างเมนูด้านซ้ายก็ใช้ ข้อความใน widget เขียน html
สำหรับการลิงค์ไปโพสต์ต่าง ๆ ตามปกติ
เพราะแต่ละตัวเลือกไม่ได้ลิงค์ไปที่เพจ (page) แต่ลิงค์เข้าบันทึก (post)
มีลิงค์ส่งบทความอันเดียวที่ลิงค์ไปเพจ และใช้ iframe มาแสดงผลในเพจ
2. เขียนระบบอัพโหลดบทความอย่างง่าย
เป็น 1 ใน 3 วิธีส่งบทความ อีก 2 วิธีคือ ไปรษณีย์ และอีเมล
การเปิดให้ส่งบทความก็ต้องกรองกันก่อนว่าตัวจริง ไม่ใช่หุ่นยนต์
3. จึงไปขอใช้บริการ recaptcha ของ google
ซึ่งมี code ที่เคยใช้อยู่ที่ thaiall.com
พบว่าพอย้ายเครื่องบริการก็ต้องไปขอ secret key กับ site key กันใหม่
เพราะตอนตรวจต้องใช้ secret key ใน code แต่ตอนส่งต้องกำหนด site key
4. สรุปว่า .. ขอ key ทั้งสองใหม่จาก recaptcha service โดยใช้ ip ของเครื่องบริการ
แล้วได้รับ key ทั้งสองมาใช้ใน code เดิม ไม่พบปัญหาอะไร
ซึ่ง code ที่ใช้อยู่ที่ http://www.thaiall.com/captcha.php

แก้ไขการจำกัดขนาดการ upload แฟ้มเข้า iis7

iis manager
iis manager

ใช้ script ภาษา asp upload แฟ้มเข้า iis7 server
พบว่าขนาดแฟ้มจำกัดไม่เกิน 200000Bytes
ต้องแก้ไข AspMaxRequestEntityAllowed ก็พบว่าใน
IIS7 เข้าไปที่ iis manager แล้วคลิ๊ก asp
หาใน Limits Properties
พบ Maximum Requesting Entity Body Limit
ผมแก้จาก 200000 เป็น 2000000
ทำให้สามารถส่งแฟ้มขนาด 3 แสนเข้าไปได้ครับ

แต่ก่อนอื่นต้องแก้ permission ของ wwwroot
ให้ user ต่าง ๆ เข้าไป write ได้ โดยแก้ไขใน security ของ folder
http://www.thaiall.com/perlphpasp/source.pl?9123


สำหรับ iis6

metabase writeable
metabase writeable

ดูภาพตามลิงค์นี้ http://www.scriptinstallation.in/uploading_large_files_iis.html
แล้วเปิด c:\Windows\System32\Inetsrv\Metabase.xml
จาก AspMaxRequestEntityAllowed=”204800″
เป็น AspMaxRequestEntityAllowed=”4096000″


สำหรับ iis5.1
http://stackoverflow.com/questions/1792386/uploading-in-asp-to-iis-5-1

อัพโหลดผู้ใช้เข้า moodle 2.2.1

moodle user upload
moodle user upload

การอัพโหลด รายชื่อผู้ใช้เข้าระบบอีเลินนิ่งของ moodle มีเงื่อนไข ดังนี้ 1) บรรทัดละ 1 คน 2) ทุกบรรทัดมีหนึ่งระเบียน แต่ละระเบียน แบ่งแยกด้วย , หรือเครื่องหมายแล่งแยกอื่น 3) ระเบียนแรกให้เป็นชื่อเขตข้อมูล 4) ชื่อเขตข้อมูล คือ username, password, firstname, lastname, email

ผมมีข้อมูลเป็นอีเมล และต้องการใช้ email เป็นรหัสสำหรับ login เช่น xxx@yyy.com แล้วต้องการเฉพาะ xxx จึงใช้ฟังก์ชันด้านล่างนี้

=LOWER(MID(E2,1,FIND(“@”,E2)-1))

ในโปรแกรม excel เพื่อให้ได้แฟ้ม csv

ผลทดสอบส่ง  597 คน เข้าระบบ เรียบร้อยดีครับ

การเพิ่มสมาชิกด้วยการ upload

upload users in moodle
upload users in moodle

20 ก.ค.54 ผลการทดสอบใช้ moodle 1.9.12 ผ่านไปด้วยดีอีก 1 ขั้น เพราะได้ทำการ Upload users รหัสผู้ใช้ทั้งหมดหลายสิบบัญชี เข้าระบบอีเลินนิ่งได้ และมีการเชื่อมกับอีเมลในระบบ @thaiabc.com ที่ใช้บริการของ google apps โดยสร้างบัญชีผู้ใช้ผ่าน text file มีรูปแบบเป็น CSV เมื่ออัพโหลดแล้ว ก็กำหนดอีเมลเป็น %f@thaiabc.com ซึ่งมีบัญชีอีเมลรองรับอยู่แล้ว จึงใช้ได้ทันที .. เมื่อทดสอบ login ก็พบว่าไม่ปัญหา ส่วน field deleted ผมกำหนดค่าเป็น 0 ทำให้ผู้ใช้ที่ผมสร้างขึ้นทั้งหมดไม่สามารถลบ account ของตนด้วยตนเองได้ ถ้าจะลบต้องให้ admin ดำเนินการ (แต่รหัสผ่านที่ผมกำหนดเข้าไปจะซับซ้อนกว่าตัวอย่างที่เห็นนะครับ)

ใช้บริการ up clip ของ oknation.net

vdo clip oknation
vdo clip oknation

มีคลิ๊ปวีดีโอหลายคลิ๊ป จากหลายกล้อง ตั้งใจจะ upload ในหลายแหล่ง ก็พบว่าเมื่อ 16 พ.ค.2554 ในเว็บไซต์บริการบล็อก (blog website) oknation.net รับ clip ไปเผยแพร่ได้ แต่มี Quota จำกัดขนาดแฟ้มแต่ละแฟ้มไม่เกิน 100 MB และได้พื้นที่รวม 300 MB ต่อไปจะ upload อะไร คงต้องคิดก่อน .. ถ้าพื้นที่เต็มเดี๋ยวจะแย่

http://www.oknation.net

อัพโหลดหลายไฟล์ผ่าน click เดียว

swf file upload
swf file upload

22 ม.ค.54 การ upload แฟ้มเข้าเครื่องบริการทีละแฟ้มนั้น ใช้คำสั่งไม่เกิน 5 บรรทัดก็สามารถทำได้ แต่ถ้าต้องการ upload หลายแฟ้มด้วยการ click ครั้งเดียว ต้องเขียนหลายบรรทัด .. การศึกษาเรื่องนี้เกิดจาก คุณแบงค์ (เพื่อนร่วมงาน) ถามว่า ทำอย่างไร upload หลายแฟ้มเข้าเครื่องบริการผ่าน web browser .. ผมเองก็เคยเห็นใน hi5.com หรือ facebook.com เมื่อหลายปีก่อน เมื่อสืบค้นดูก็พบว่า swfupload.org มี code จึงนำมาดัดแปลง และเปิดให้ทดสอบ
ที่ http://www.thaiall.com/php/multiupload

การแก้ไข script มีหลายจุด คือ ยกเลิก preload alert ที่แสดงว่ามีปัญหาออกไป เปลี่ยนห้องรับแฟ้มให้เป็นห้องเดียวกับ script เลือกใช้ตัวอย่างจาก multiinstanceupload

+ http://demo.swfupload.org/v250beta3/
+ http://www.thaiall.com/download/multiupload_swfupload.zip

ปัญหาส่งแฟ้มเข้าเครื่องบริการไม่สำเร็จ

31 พ.ค.53 เล่าปัญหาการส่งแฟ้มกับเครื่องบริการตัวหนึ่ง เหตุเกิดเพราะมีแฟ้มขนาด 15 MB แบบ .mdb ที่ต้องส่งเข้าเครื่องบริการตัวที่หนึ่ง เป็นระบบฐานข้อมูล จึง download ออกมาแก้ไข แต่เมื่อ upload กลับเข้าไป พบว่าเข้าไปเพียง 15 KB ถึง 30 KB ไม่ว่าจะ Upload กี่ครั้งก็ตาม โดยใช้เทคนิค Upload จากที่บ้าน 2 วิธี คือ 1. ftp 2. web upload แต่ทั้ง 2 วิธีล้มเหลว เพราะข้อมูลถูกวางสำเร็จได้ไม่เกิน 40 KB จึงใช้วิธีที่ 3 คือ zip file แล้ว upload ด้วยวิธีที่ 1 และ 2 แต่ผลที่ได้คือไม่สำเร็จเหมือนเดิม
      มาสำเร็จด้วยวิธีที่ 4 คือ upload แฟ้ม .zip ไปยังเครื่องบริการตัวที่สอง แล้วใช้ remote desktop เข้าไปที่เครื่องบริการตัวที่หนึ่ง แล้วใช้ ftp download แฟ้มจากเครื่องบริการตัวที่สองมาวางในเครื่องบริการตัวที่หนึ่ง เมื่อคลาย .zip ก็ทำให้ web server ติดต่อระบบฐานข้อมูลได้ปกติ .. บันทึกไว้ครับ โอกาสหน้าจะได้ใช้เป็นบทเรียน