PHP Code snippets

เขียน PHP ใน wordpress

สิ่งที่ต้องมี ไซต์ wordpress และ user ที่สามารถติดตั้งและใช้งาน Plugins ได้ ส่วนใหญ่คือ user ที่มีสิทธิ administrator ติดตั้ง Plugins ชื่อ PHP Code snippets (จริง ๆ Plugins ที่ทำหน้าที่นี้มีหลายตัว แต่ใช้ตัวนี้มานานแล้ว) แล้วเปิดการใช้งานให้เรียบร้อย เมื่อติดตั้งและเปิดใช้แล้วจะมีเมนู PHP snippets ปรากฏขึ้นที่แถบด้านซ้ายมือ เมื่อคลิกที่ PHP snippets จะได้ดังรูป (แต่อันนี้จะมี code ของผู้เขียนอยู่แล้วสาม code) คลิก Add snippet เพื่อสร้าง code ใส่ชื่อ code ในช่องแรก และใส่ code PHP ในช่องที่สอง คลิก Where there is a shortcode เพื่อให้ code ทำงานเฉพาะหน้าที่มีการระบุ  shortcode แต่หากต้องการให้ code นี้ทำงานทุกหน้าสามารถคลิกที่ Run everywhere และสามารถเขียนคำอธิบายได้ในช่อง  Description คลิก Publish เพื่อเปิดการใช้งาน code คลิก snippet เพื่อดูสถานะ ถ้าได้ดังรูปแปลว่า code ถูกเปิดใช้งานแล้ว ถ้าต้องการปิดไม่ให้ code ทำงานสามารถคลิกปุ่ม Deactivate ได้ วิธีเรียกใช้งานให้สร้าง Pages หรือ Posts แล้วนำ shortcode ไปใส่ไว้ shortcode สามารถดูได้ในช่อง  Where use? ตัวอย่าง จาก code นี้ถ้าเรียกหน้า https://licensing.psu.ac.th/login โดย user ที่ยังไม่ login จะ redirect ไปหน้า login ก่อน จบขอให้สนุก  

Read More »

How to install PSU SSL VPN Client ubuntu 18.04

เปิด terminal เริ่มด้วยการติดตั้งโปรแกรมที่จำเป็น sudo apt install -y openfortivpn สร้างแฟ้ม /home/username/fortivpn.config มีข้อความว่า host = vpn2.psu.ac.th port = 443 username = PSU Passport Username password = PSU Passport Password trusted-cert = 34df1a6bd3705782fd17152de0c4fe0b3e7f31302cbdcf737b113c17a5b9ff09 สั่งรันคำสั่ง sudo openfortivpn -c fortivpn.config ได้ข้อความประมาณว่า แปลว่าเชื่อมต่อได้แล้ว หากต้องการยกเลิกการเชื่อมต่อให้กด ctrl-c จะได้ข้อความประมาณว่า แปลว่ายกเลิกการเชื่อมต่อแล้ว ต้องเปิด terminal ที่รันคำสั่ง openfortivpn ไว้ตลอดเวลาที่เชื่อมต่อห้ามปิด จบสไตล์คอมมานไลน์ …. หากอยากได้ง่ายกว่านี้ ติดตั้งโปรแกรม OpenFortiGUI โหลดที่ https://hadler.me/linux/openfortigui/ โดยเลือกโปรแกรมสำหรับ Ubuntu 18.04 โหลดมาแล้วติดตั้งด้วยคำสั่ง sudo dpkg -i openfortigui_0.6.2-1_bionic_amd64.deb จะมี error message มากมาย ให้ต่อด้วยคำสั่ง sudo apt -f -y install เริ่มใช้งานเปิดโปรแกรม openFortiGUI โดยกดที่ปุ่ม Show Applications เลือก openFortiGUI จะได้หน้าต่าง คลิกปุ่ม Add เลือก VPN จะได้ กรอกข้อความตามรูป ช่อง username และ password ก็ใส่ PSU Passport ลงไปเสร็จแล้วกด Save ได้ดังรูป เลือก PSU แล้วคลิก Connect ได้ผลดังรูป คลิก x เพื่อปิดหน้าต่างสังเกตว่าจะมีรูป  ที่มุมบนขวา หากจะยกเลิกการเชื่อมต่อ คลิกขวาที่  เลือก PSU เพื่อ dissconnect จบขอให้สนุก… ***  จากที่ลองทดสอบพบว่า เมื่อเชื่อมต่อ AIS 4G จะไม่สามารถใช้วิธี OpenFortiGUI ได้ แต่ใช้วิธีคอมมานไลน์ได้ครับ

Read More »

Configuration of TCP/IP with SSL and TLS for Database Connections

สิ่งที่ต้องเตรียม Oracle Database Server ในตัวอย่างนี้ใช้ Oracle database บน Oracle Enterprise Linux 7 Oracle Database Client  ในตัวอย่างใช้ Windows Server 2008 R2 เริ่ม ฝั่ง Server เข้าระบบด้วยบัญชีผู้ใช้ oracle หรือบัญชีที่เป็นเจ้าของ Oracle Database เปิด terminal สร้าง Oracle Wallet ด้วยคำสั่ง mkdir -p /u01/app/oracle/wallet ต่อด้วย orapki wallet create -wallet “/u01/app/oracle/wallet” -pwd WalletPasswd123 -auto_login_local โดย -pwd WalletPasswd123 ตัว WalletPasswd123 คือรหัสผ่านที่ใช้ป้องกันการเข้าถึงข้อมูลต่างๆ ใน wallet กฎการตั้งมีอยู่คือ ยาวอย่างน้อย 8 ตัวอักษร ไม่จำกัดความยาว จำเป็นต้องตั้งให้ตัวเลขผสมตัวอักษร สร้าง Certificate และใส่เข้าไปใน wallet ด้วยคำสั่ง orapki wallet add -wallet “/u01/app/oracle/wallet” -pwd WalletPasswd123 \ -dn “CN=`hostname`” -keysize 1024 -self_signed -validity 3650 ตรวจสอบด้วยคำสั่ง orapki wallet display -wallet “/u01/app/oracle/wallet” -pwd WalletPasswd123 ได้ผลลัพธ์ประมาณ Oracle PKI Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Subject: CN=reis.psu.ac.th Trusted Certificates: Subject: CN=reis.psu.ac.th Export Certificate เพื่อนำไปใช้กับเครื่อง Oracle Client ด้วยคำสั่ง orapki wallet export -wallet “/u01/app/oracle/wallet” -pwd WalletPasswd123 \ -dn “CN=`hostname`” -cert /tmp/server-certificate.crt ตรวจสอบแฟ้มที่ export ไปด้วยคำสั่ง cat /tmp/server-certificate.crt ได้ผลลัพธ์ประมาณว่า —–BEGIN CERTIFICATE—– MIIBoTCCAQoCAQAwDQYJKoZIhvcNAQEEBQAwGTEXMBUGA1UEAxMOcmVpcy5wc3UuYWMudGgwHhcN MTgwMTA5MDcyNTA2WhcNMjgwMTA3MDcyNTA2WjAZMRcwFQYDVQQDEw5yZWlzLnBzdS5hYy50aDCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAj4x2/NviDaTlXuEJt0kZARY5fHiT2SiVX+a18hai I0stoUhKKefjOCgB85iuqjIk0rvcGXI0KXkbenTy2t40A+qGxB04mBhCLKaKeIe67BZKR6Zyw1dd oaesoaWChC01b+IW1X5WWtC53UxpIZQ4Zktj41sLGUnarIr9+9HFwncCAwEAATANBgkqhkiG9w0B AQQFAAOBgQAqSCF2Y8uyM4rSQHUC8MKEl3Ia3NJKnigMOUzDc2fP7grSaoeuQ4NvIntTD+s+IT5Y EpLVND4kSHFTwGRq0Py/ig8ybXZCXfHtvNZh7ZGziL/sYt5/8xYi/tOBKwVanBTUaseKIMovtmd7 UyoOKrX8YBoFsB3UPRLudmFsksXRXw== —–END CERTIFICATE—– ฝั่ง Client เข้าระบบด้วยบัญชีผู้ใช้ administrator เปิด cmd แล้วสร้าง wallet ด้วยคำสั่ง mkdir c:\app\oracle\wallet สร้าง Certificate ด้วยคำสั่ง orapki wallet add -wallet “c:\app\oracle\wallet” -pwd WalletPasswd123 -dn “CN=%computername%” -keysize 1024 -self_signed -validity 3650 โดย WalletPasswd123 คือพาสเวิร์ดที่ใช้ล็อค wallet ไม่จำเป็นต้องเหมือนกับของ Server ตรวจสอบด้วยคำสั่ง orapki wallet display -wallet “c:\app\oracle\wallet” -pwd WalletPasswd123 ได้ผลลัพธ์ประมาณว่า Oracle PKI Tool : Version

Read More »

date นั้นสำคัญไฉน

ที่ Shell prompt พิมพ์คำสั่ง man date ได้อะไรมาไม่รู้เยอะแยะ… จากคู่มือจะเอารูปแบบวันที่ 12-09-2017 ตัวเลือกที่เกี่ยวข้องได้แก่ %d %D %e %F %g %G %m %y %Y เป็นต้น ลองส่งคำสั่ง date +”%d-%m-%Y” ได้ผลลัพธ์ 12-09-2017 ตรงตามที่ต้องการ มาเขียนสคริปต์กันหน่อย อยากได้เมื่อวานทำไง วันนี้เล่น tcsh shell สร้างแฟ้ม date.tcsh ด้วย editor ที่ชื่นชอบมีข้อความว่า #!/bin/tcsh -f set tday=`date +”%d”` set tmonth=`date +”%m”` set tyear=`date +”%Y”` echo “Today is ${tday}-${tmonth}-${tyear}.” set yday=`expr ${tday} – 1` echo “Yesterday was ${yday}-${tmonth}-${tyear}.” ทดสอบสคริปต์ด้วยคำสั่ง tcsh date.tcsh ไม่อยากพิมพ์ tcsh ทุกครั้งเพิ่ม execution bit ด้วยคำสั่ง chmod +x date.tcsh เรียกใช้ได้โดยพิมพ์ ./date.tcsh (อ่านว่า จุด-ทับ-เดต-จุด-ที-ซี-เอส-เอช) ผลลัพธ์ที่ได้ Today is 12-09-2017. Yesterday was 11-09-2017. อยากได้เมื่อวานทำไมมันยากอย่างนี้ ฮา… ซึ่งเมื่อกลับไปอ่านคู่มือ (man date) ให้ดี..อีกครั้งจะพบว่ามีตัวเลือก -d, –date=STRING display time described by STRING, not ‘now’ และเมื่่อเลื่อนลงมาล่างสุดจะพบว่า DATE STRING The –date=STRING is a mostly free format human readable date string such as “Sun, 29 Feb 2004 16:21:42 -0800” or “2004-02-29 16:21:42” or even “next Thursday”. A date string may contain items indicating calendar date, time of day, time zone, day of week, relative time, relative date, and numbers. An empty string indicates the beginning of the day. The date string format is more complex than is easily documented here but is fully described in the info documentation. โอ้ววว มันเขียนไว้หมดแล้ว… เขียนใหม่ได้ว่า date -d yesterday ได้ผลลัพธ์ Mon Sep 11 21:43:51 +07 2017 เปลี่ยนให้ผลลัพธ์ออกมาในรูปแบบที่ต้องการได้ด้วยคำสั่ง date -d yesterday +”%d-%m-%Y” ก็จะได้ผลลัพธ์ว่า 11-09-2017 แก้สคริปต์

Read More »

Fixed : KU$_RADM_FPTM_VIEW in invalid status

ฐานข้อมูลที่จะพบปัญหานี้ Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 OS เป็น CentOS 7.3 หรือ Oracle Enterprise Linux 7.3 ปัญหานี้ข้อสำคัญทำให้ export ข้อมูลไม่ได้ คือไม่สามารถสำรองข้อมูลได้ เข้าระบบด้วยผู้ใช้ oracle สร้างแฟ้ม fix.sql ด้วยคำสั่ง cat >>fix.sql<<EOF CREATE OR REPLACE NONEDITIONABLE TYPE “SYS”.”KU$_RADM_FPTM_T” as object ( vers_major char(1), /* UDT major version # */ vers_minor char(1), /* UDT minor version # */ numbercol number, /* number */ binfloatcol binary_float, /* binary float */ bindoublecol binary_double, /* binary double */ charcol char(1), /* fixed-size character */ varcharcol varchar2(1), /* variable-size character */ ncharcol nchar(1), /* fixed-size national character */ nvarcharcol nvarchar2(1), /* variable-size national character */ datecol date, /* date */ ts_col timestamp, /* timestamp */ tswtz_col timestamp with time zone, /* timestamp with time zone */ fpver number /* version of default fixed point values */ ) / CREATE OR REPLACE FORCE NONEDITIONABLE VIEW “SYS”.”KU$_RADM_FPTM_VIEW” OF “SYS”.”KU$_RADM_FPTM_T” WITH OBJECT IDENTIFIER (fpver) AS select ‘1’,’0′, numbercol, binfloatcol, bindoublecol, charcol, varcharcol, ncharcol, nvarcharcol, datecol,ts_col,tswtz_col, fpver from sys.radm_fptm$ where fpver=1 / EOF เชื่อมต่อกับฐานข้อมูลด้วย sqlplus ด้วยบัญชีผู้ใช้ / as sysdba ที่ prompt SQL> พิมพ์คำสั่ง @/home/oracle/fix.sql ก็จะแก้ปัญหาได้ จบ ขอให้สนุก ที่มา เว็บโดนปิดไปแล้ว

Read More »