วันศุกร์ที่ 23 กันยายน พ.ศ. 2559

กำหนดค่าคอนฟิค ubuntu และ kvm แบบ nat ให้ทำการ forward port

ลองกำหนดค่าคอนฟิคให้กับระบบเซิร์ฟเวอร์เวอร์ชวลแมชชีน โดยใช้ ubuntu และ kvm ผู้เขียนได้ทดลองรันระบบเวอร์ชวลแมชชีนโดยใช้ระบบปฏิบัติการลินุกส์มาหลายปีที่ผ่านมา พบว่าระบบมีการทำงานที่มีเสถียรภาพดีมาก ๆ ในวันนี้ผู้เขียนจะได้แนะนำวิธีการฟอร์เวิร์ดพอร์ตเซอร์วิสต่าง ๆจากโฮสต์(host) ไปยังเกสต์(guest) ที่กำหนดค่าการ์ดแลนด์เป็นแบบแน็ท(nat)ในขณะเดียวกันระบบก็มีการกำหนดการ์ดอินเทอร์เฟสยังเวอร์ชวลแมชชีน(guest)ที่กำหนดค่าอินเตอร์เฟสแบบบริดจ์(bridge)ด้วย

การรันเกสต์แบบบริดจ์จะสามารถแม็พไอพีจริง(public ip address) ไปยังเครื่องเกสต์ได้โดยตรง ส่วนการแม็พไอพีจริงแบบแน็ทนั้นจะต้องการสร้างเทคนิคการทำ port forwarding รวมถึง การทำ destination และ source masquarade ไปด้วยกัน

จากโจทย์ของผู้เขียน หากเครื่องไคลเอ้นท์ต้องการติดต่อกับเครื่องเกสต์แบบแน็ทพอร์ต 80 ต้องดำเนินการดังนี้

iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 -dport 80 -j DNAT --to-destination 192.168.122.2:80
iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 -dport 22 -j DNAT --to-destination 192.168.122.2:22




 

หลังจากนั้นต้องทำการฟอร์เวิร์ดแพคเกจไปด้วย โดยจะทำการตรวจสอบเฉพาะสถานะ New, Related และ Established เท่านั้น

iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT


สิ่งสำคัญอีกเรื่องก็คือการกำหนดค่าให้เคอร์เนลทำหน้าที่ฟอร์เวิร์ดไอพีแอดเดรส

sysctl -w net.ipv4.ip_forward=1
cat /proc/sys/net/ipv4/ip_forward
sysctl -p /etc/sysctl.conf

เนื้อหาดี ๆเหล่านี้จะสำเร็จลงไม่ได้หากไม่ได้รับการสนับสนุนจาก บจก.ไทย พรอสเพอรัส ไอที ผู้นำด้านการให้บริการ ระบบ จีพีเอสติดตามรถ รู้ลึก รู้จริง ตอบปัญหาได้ทุกเรื่อง ต้องใช้บริการที่นี่เท่านั้น

วันจันทร์ที่ 22 สิงหาคม พ.ศ. 2559

ทดลองส่งข้อมูลผ่านฟอร์มแบบอัตโนมัติ โดยใช้ php curl วิธี GET

หลังจากที่ผู้เขียนได้ทดลองการส่งข้อมูลผ่านฟอร์มแบบอัตโนมัติโดยไม่ต้องคอยนั่งกดคีย์ Submit ไปเมื่อปี 2558 ตามลิงค์ที่ให้นี้ http://www.s-techthai.com/2014/12/php-method-post.html กลับมาเจอการบ้านใหม่อีกครั้งเพราะการส่งข้อมูลใช้วิธีการที่เรียกว่า "POST" มีบางแอพพลิเคชั่นที่ไม่ต้องการให้เราสั่งงานโดยใช้การ "POST" มาในวันที่จะเป็นการแนะนำขั้นต้องการสั่งงานผ่าน PHP Curl โดยใช้วิธีการ "GET" บ้าง

ศึกษาการทำงานกัน
 $url = 'http://www.gps-vehicle.com/?'.$field_string; เป็นการตั้งค่า url ที่ต้องการจะส่งข้อมูลแบบ GET
 $curl = curl_init(); เป็นการกำหนดค่าเริ่มต้นสำหรับการใช้งานฟังก์ชั่น curl
 curl_setopt_array($curl, array( กำหนดอาเรย์สำหรับการส่งค่าพารามิเตอร์ต่างๆ ไปยังเซิร์ฟเวอร์
                        CURLOPT_RETURNTRANSFER => 1,  กำหนดออฟชั่นให้มีการส่งค่ากลับ
                        CURLOPT_URL => $url, กำหนดค่า Url ที่ใช้ในการทดลองส่งข้อมูล
                        CURLOPT_USERAGENT => 'Thai Prosperous IT co.,Ltd.'
                ));
 $resp = curl_exec($curl); สั่งให้ฟังก์ชั่น curl ประมวลผล โดยผลลัพธ์หรือค่าตอบกลับอยู่ในตัวแปร resp
 curl_close($curl); สั่งสิ้นสุดการทำงานของฟังก์ชั่น curl



 $url = 'http://www.gps-vehicle.com/?'.$field_string;
 echo $url;
 $curl = curl_init();
 curl_setopt_array($curl, array(
                        CURLOPT_RETURNTRANSFER => 1,
                        CURLOPT_URL => $url,
                        CURLOPT_USERAGENT => 'Thai Prosperous IT co.,Ltd.'
                   ));
 $resp = curl_exec($curl);
 curl_close($curl);


หลังจากนั้นก็ทดสอบการทำงานผ่านเทอร์มินอล โปรแกรมก็สามารถประมวลผลตามที่เราต้องการได้อย่างอัตโนมัติ ผู้เขียนตั้งค่าการทำงานผ่าน crond ทุกๆ 2 นาที หรือทำแบบ asynchronous ก็ได้ สำหรับฟังก์ชั่นการรับค่าจากอุปกรณ์ GPS TRACKER ให้ส่งต่อข้อมูลที่เปลี่ยนเป็นแบบวิธี GET ซึ่งรับประกันได้ว่าได้ผลการทำงานดีเช่นเดียวกัน ส่วนขนาดของข้อความสูงสุดที่รับได้ ผู้เขียนยังไม่ได้ทดสอบแต่ประเมินว่าขึ้นอยู่กับค่ามาตรฐานของโปรโตคอล HTTP อยู่แล้ว

วันอังคารที่ 19 กรกฎาคม พ.ศ. 2559

วุ่นวายกับการเปิดปิดไฟล์เพื่ออ่านและเขียนโดยภาษา PHP

ปวดหัวไปหลายวันทีเดียวสำหรับการเปิดปิดไฟล์เพื่ออ่านและเขียนโดยใช้โปรแกรมภาษา PHP  สำหรับโปรแกรมนี้ที่ผู้เขียนพัฒนาสำหรับอุปกรณ์ Thai GPSTRACKER รุ่นหนึ่งที่หากมีการรูดบัตรผ่านเครื่องอ่านใบอนุญาตขับรถ จะต้องนำข้อมูลรหัสบัตรไปเก็บที่ไฟล์ แต่ถ้านำบัตรใบนั้นไปรูดซ้ำให้ถือว่าเป็นการล็อกเอาท์ ส่วนหากรูดบัตรใหม่ถือว่าเป็นการเปลี่ยนบัตรให้ลบข้อมูลเดิมออกและนำข้อมูลบัตรใบใหม่จัดเก็บไว้แทน
โดยผู้เขียนสรุปการทำงานดังต่อไปนี้

1. หากไฟล์ยังไม่ถูกสร้างขึ้นมาให้ทำการเขียนใหม่ได้เลย
2. หากไฟล์มีข้อมูลอยู่แล้ว ให้อ่านข้อมูลเก่าขึ้นมาก่อน จากนั้นทำการเปรียบเทียบกับข้อมูลใหม่
2.1 หากข้อมูลใหม่กับข้อมูลเก่าเหมือนกันให้ทำการลบไฟล์เก่าออก
2.2 หากข้อมูลใหม่ต่างกันกับข้อมูลเก่าให้เขียนไฟล์ด้วยข้อมูลใหม่

ฟังดูจากโจทย์แล้วไม่น่ายากแต่พอได้ทำงานจริงพบว่า รันไทม์เออเรอ(runtime error) ตลอดเวลาหากเราไม่ทำการตรวจสอบข้อมูลดูก่อนว่ามีไฟล์ที่ต้องการเปิดอยู่จริง หรือไฟล์ที่มีอยู่กับไม่มีข้อมูลอยู่ในนั้นเลย ทำให้ฟังก์ชั่นการอ่านไฟล์ขึ้นมาเกิดข้อผิดพลาดได้

การดำเนินการข้อที่ 1 ตรวจสอบไฟล์เก่าดูก่อน หากยังไม่มีให้สร้างหรือเขียนไฟล์ใหม่
if ( file_exists("$imei")===false ) {
           $fh = fopen("$imei",'w+') or die('Cannot open file:');
           fwrite($fh,$newdriverid);
            fclose($fh);
}

การดำเนินการข้อที่ 2 หากไฟล์เก่ามีอยู่แล้ว ให้อ่านข้อมูลของไฟล์เก่า
 $fh = fopen("$imei",'r+') or die('Cannot open file:');
 $p_driverid = stream_get_contents($fh);
 fclose($fh);

การดำเนินการข้อที่ 2.1 ให้ทำการเปรียบเทียบข้อมูลเก่ากับข้อมูลใหม่ หากเหมือนกันให้ลบไฟล์เก่าออก
 if (strcmp($newdriverid,$p_driverid)==0) {
                 unlink("$imei");
 }
 

การดำเนินการข้อที่ 2.2  ส่วนหากข้อมูลต่างกันให้เขียนทับด้วยข้อมูลใหม่
$fh = fopen("$imei",'w+') or die('Cannot open file:');
fwrite($fh,$newdriverid);
fclose($fh);


                                      
สำหรับการนำไปพัฒนาต่อยอดก็สามารถดำเนินการได้เองโดยไม่ยาก โดยสาระสำคัญของบทความนี้ก็คือวิธีการเปิดไฟล์เพื่อเขียนทับ วิธีการเปิดไฟล์เพื่ออ่าน และวิธีการลบไฟล์ ทำยังไงให้ไม่เกิดข้อผิดพลาดและหยุดการทำงานของโปรแกรมนั่นเอง


วันพุธที่ 29 มิถุนายน พ.ศ. 2559

ทดลองส่งข้อความผ่านโปรโตคอล TCP โดยใช้คลาส php-socket-raw

ผู้เขียนเพิ่งจะมีโอกาสใช้งานโปรแกรม php มากขึ้นเรื่อยๆ เริ่มต้นจากการใช้งานเวบเซอร์วิส หลังจากนั้นก็เริ่มทำการส่งข้อมูลผ่านเครือข่าย udp หลังจากเสียเวลาศึกษาค้นคว้าหลายวันเพิ่งจะพบว่ามีคลาส php-socket-raw สามารถใช้งานได้อย่างง่ายดาย และมีเสถียรภาพสูง สำหรับหลายๆ คนที่ไม่เคยใช้งานมาก่อน มาวันนี้ลองไป ทดลองส่งข้อความผ่านโปรโตคอล TCP โดยใช้คลาส php-socket-raw กันเลย


ขั้นตอนที่ 1 ติดตั้งคลาส php-socket-raw โดยใช้คอมโพเซอร์

$composer require clue/socket-raw:~1.2

ขั้นตอนที่ 2 ทดลองคีย์โปรแกรมตามตัวอย่างเพื่อทดสอบการทำงาน

#!/usr/bin/env php
<?php

use Socket\Raw\Factory;

error_reporting(-1);

require_once __DIR__.'/vendor/autoload.php';

$factory = new Factory();
$socket = $factory->createClient('www.google.com:80');

echo 'Client connected to ' . $socket->getPeerName() . PHP_EOL . PHP_EOL;

$socket->write("GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n");

var_dump($socket->read(8192));

$socket->close();


3.ผลลัพธ์การรันโปรแกรม


root@sedonaVM:/var/www/tpit/ywt# php client-tcp.php
Client connected to 61.19.2.153:80

string(894) "HTTP/1.1 302 Found
Location: http://www.google.co.th/?gws_rd=cr&ei=sXhzV9qTPMr9vgTcyauIAQ
Cache-Control: private
Content-Type: text/html; charset=UTF-8
P3P: CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."
Date: Wed, 29 Jun 2016 07:28:49 GMT
Server: gws
Content-Length: 261
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Set-Cookie: NID=81=pYSdoPTx0tkWQ9q2mQT6AAZra1NCPZd0t6DAkoOjl0_MYofhZ-y2wR1VKF5zzE_1aIZ6QNNFMu5HTbhhl7tRVgH14UcSkuJr9IMCIeHbPPeg94Vt1XXJLurt1pU8RIGm; expires=Thu, 29-Dec-2016 07:28:49 GMT; path=/; domain=.google.com; HttpOnly

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.th/?gws_rd=cr&amp;ei=sXhzV9qTPMr9vgTcyauIAQ">here</A>.
</BODY></HTML>
"
จากตัวอย่างจะเห็นได้ว่าเป็นการเรียกใช้งานคลาสและสร้างซ็อกเก็ต ซึ่งนับว่าจะช่วยลดขั้นตอนการพัฒนาโปรแกรมไปได้มาก สะดวกสบายต่อการนำไปใช้งานโดยเฉพาะ
คุณสมบัติของคลาสตามมาตรฐานการพัฒนาแบบออบเจค(oop) งานด้านการพัฒนาซอต์ฟแวร์ยังมีกันให้เห็นอยู่อีกมากมาย สิ่งสำคัญที่สุดโปรแกรมสคริป php มีฟีเจอร์เด่นไม่เป็นรองใคร

ต้องขอขอบพระคุณพื้นที่เวบบล็อกดี ๆจาก บจก. ไทย พรอสเพอรัส ไอที พร้อมกับขอฝากเวบไซต์ใหม่ gpstrackingthailand.com ไว้ด้วยสำหรับนำเสนอเรื่องราวสาระอันเป็นประโยขน์
ต่อการพัฒนาระบบจีพีเอสติดตามรถยนต์ เก็บเกี่ยวจากประสพการณ์จริงๆ

วันศุกร์ที่ 15 เมษายน พ.ศ. 2559

เปลี่ยนค่า repository ให้ Ubuntu Server 14.04 กัน

ห่างเหินการอัพเดทข้อมูลไปหลายวัน หลังจากที่ผู้เขียนกำลังอยู่ในช่วงการเชื่อมต่อข้อมูลเวบเซอร์วิสกับกรมการขนส่งทางบก เรื่องการส่งข้อมูลจากเซิร์ฟเวอร์ GPS ติดตามรถ สำหรับรายละเอียดทางเทคนิคของเวบเซอร์วิสก็เกริ่นคร่าว ๆว่าใช้วิธีการแลกเปลี่ยนแบบ Json XML ก็ผ่านพ้นไปได้ด้วยดี เซิร์ฟเวอร์ให้บริการเวบไซต์ของผู้เขียนเองก็ไม่ได้มีการอัพเดทซอฟต์แวร์ระบบปฏิบัติการมากว่า 7 เดือน คงต้องถึงเวลาเข้าไปดูแลกัน เริ่มต้นด้วยคำสั่งยอดนิยม apt-get update กลายเป็นว่าพบข้อผิดพลาดไม่สามารถทำการอัพเดทข้อมูลได้ ลองอยู่หลายวิธีไม่ว่าจะเข้าไปลบไฟล์เก่า ๆก่อนหรือทำการ  apt-get clean ก็ยังไม่หาย หาวิธีการอยู่นานจนได้พบว่าขั้นตอนที่ดีที่สุดก็คือเปลี่ยนค่า repository ใหม่ให้ชี้ไปที่ต้นฉบับ แล้วต้องทำยังไง

ผู้เขียนพบเวบไซต์หนึ่ง https://repogen.simplylinux.ch/generate.php สามารถกำหนดชื่อประเทศ ก็ออกรายชื่อของ repository lists ต่าง ๆของUbuntu Server ได้แล้ว ตามตัวอย่างที่ผู้เขียนใช้ลิงค์ข้างต้นสร้างให้

#------------------------------------------------------------------------------#
#                            OFFICIAL UBUNTU REPOS                             #
#------------------------------------------------------------------------------#


###### Ubuntu Main Repos
deb http://th.archive.ubuntu.com/ubuntu/ trusty main
deb-src http://th.archive.ubuntu.com/ubuntu/ trusty main

###### Ubuntu Update Repos
deb http://th.archive.ubuntu.com/ubuntu/ trusty-security main
deb http://th.archive.ubuntu.com/ubuntu/ trusty-updates main
deb-src http://th.archive.ubuntu.com/ubuntu/ trusty-security main
deb-src http://th.archive.ubuntu.com/ubuntu/ trusty-updates main



กลายเป็นว่าการค้นหา repository ไม่ใช่เป็นเรื่องยากอีกต่อไป หากบางครั้งมีงานด่วน ๆหลายงานเข้ามาแล้วเราต้องมาเสียเวลาค้นหา repository เพื่อทำการอัพเดทหรืออัพเกรดข้อมูลเซิร์ฟเวอร์ใหม่ ย่อมทำให้เสียโอกาสในการทำเรื่องอื่น ๆ

นอกจากนี้ เรายังสามารถสร้างให้สคริปข้างล่าง เพื่อทำการดึงข้อมูล repository ได้โดยตรง แต่มีข้อควรระวังคือไฟล์เดิม sources.list จะหายไปกลายเป็นไฟล์ใหม่แทนที่ ต้องระมัดระวังเรื่องเหล่านี้ให้ดี เพราะอาจจะทำให้เราต้องเสียเวลาไปอีกหลายนาทีได้เหมือนกัน
 Sources List
Direct Link to Sources List or use:
WARNING: This will overwrite your existing sources.list:
curl https://repogen.simplylinux.ch/txt/sources_60ab26885221b4e54eedf76af035715544e9e2cd.txt | sudo tee /etc/apt/sources.list
 
บทความในวันนี้ก็เป็นเทคนิคเล็ก ๆน้อย ๆที่เก็บมาฝากกันสำหรับแฟน ๆระบบปฏิบัติการลินุกส์ อูบันตู ทุก ๆท่าน ผู้เขียนเองพึงพาการใช้งานระบบซอต์ฟแวร์นี้มาจนถึงทุกวันนี้ ต้องขอขอบคุณมา ณ โอกาสนี้ด้วย

วันศุกร์ที่ 18 มีนาคม พ.ศ. 2559

ลองทดสอบเฟรมเวิร์ค bootstrap และ database class สำหรับใช้งาน php

การทดสอบเฟรมเวิร์คสำหรับใช้งานติดต่อกับโปรแกรมฐานข้อมูล Mysql ด้วยโปรแกรม PHP ในวันนี้ก็เพื่อที่จะทำให้สามารถบริหารจัดการข้อมูล select, insert, delete และ update ทำได้โดยง่ายที่สำคัญเป็นแบบออปเจค(oop) ป้องแฮกเกอร์โจมตีแบบสคริปได้เป็นอย่างดี

ส่วนเฟรมเวิร์ค bootstrap จะเป็นส่วนจัดการ css สำหรับการแสดงผลบนหน้าเวบเพจได้ทั้งแบบเดสท็อปและบนอุปกรณ์มือถือ นำไปต่อยอดพัฒนาในอนาคตได้เป็นอย่างดี ในครั้งนี้ผู้เขียนจะได้แนะนำคลาส crud สำหรับใช้ในการบริหารจัดการโปรแกรมฐานข้อมูลรวมถึงการเชื่อมต่อกับเฟรมเวิร์ค bootstrap ด้วย

ลองไปรู้จักคลาส crud กันก่อนประกอบไปด้วยฟังก์ชั่นต่อไปนี้

function __construct($DB_con) เป็นข้อกำหนดเริ่มต้นของการสร้างคลาส จะทำงานทุกครั้งอัตโนมัติเมื่อมีการสร้างออบเจคขึ้นใหม่ การกำหนดต้องเริ่มด้วย __ เครื่องหมายอันเดอร์สกอร์สองอัน
public function create($fname,$lname,$email,$contact) ฟังก์ชั่นสร้างออบเจคของตารางใหม่
public function getID($id) ฟังก์ชั่นหาค่าไอดีของตามราง
public function update($id,$fname,$lname,$email,$contact) ฟังก์ชั่นปรับปรุงค่าในตารางใหม่
public function delete($id) ฟังก์ชั่นการลบข้อมูลแบบ row
public function dataview($query) ฟังก์ชั่นการแสดงผลข้อมูลตามรูปแบบการค้นหา(query) โดยจะอาศัยเฟรมเวิร์ค bootstrap
public function paging($query,$records_per_page) เป็นฟังก์ชั่นเรียกการแสดงผลทีละหน้า
public function paginglink($query,$record_per_page)  เป็นฟังก์ชั่นสร้างลิงค์ของเพจในแต่ละหน้า

เพื่อไม่ให้เสียเวลาเราไปทดลองติดตั้งและทดสอบการใช้งานกันเลยดีกว่า

ขั้นตอนที่ 1 ให้ไปดาวน์โหลดซอร์สโค๊ดตามลิงค์ที่ผู้เขียนแปะไว้ให้นี้ จากนั้นแตกไฟล์ออกมาวางไว้ในตำแหน่งที่สามารถเรียกดูผ่านเวบไซต์ได้ http://www.codingcage.com/2015/04/php-pdo-crud-tutorial-using-oop-with.html



ขั้นตอนที่ 2 สร้างฐานข้อมูลตัวอย่างและกำหนดสิทธิ์การอนุญาตสำหรับการเข้าถึงฐานข้อมูลที่สร้างใหม่

CREATE TABLE IF NOT EXISTS `tbl_users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(25) NOT NULL,
  `last_name` varchar(25) NOT NULL,
  `email_id` varchar(50) NOT NULL,
  `contact_no` bigint(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;

--
-- Dumping data for table `tbl_users`
--

INSERT INTO `tbl_users` (`id`, `first_name`, `last_name`, `email_id`, `contact_no`) VALUES
(23, 'pradeep', 'khodke', 'pradeep@gmail.com', 9876543210),
(24, 'sohan', 'mahamune', 'sohan@gmail.com', 9874563210),
(25, 'john', 'doe', 'john@someone.com', 9778456123),
(26, 'test', 'test', 'test@test.com', 8745691230);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

จากนั้นให้ทำการแก้ไขไฟล์ dbconfig.php เพื่อป้อนชื่อผู้ใช้ รหัสผ่าน และชื่อดาต้าเบสเพื่อให้คลาส crud สามารถเชื่อมต่อกับโปรแกรมฐานข้อมูลได้
ขั้นตอนที่ 3 ทดสอบการใช้งานหน้าแรกจะแสดงข้อมูลทั้งหมดที่อยู่ในฐานข้อมูลออกมา

ขั้นตอนที่ 4 ตัวอย่างหน้าจอการเพิ่มข้อมูลลงในฐานข้อมูล

ขั้นตอนที่ 5 ตัวอย่างหน้าจอการลบข้อมูล

รวบรัดตัดความจะพบว่าเพียงแค่ติดตั้งซอร์สโค๊ดเฟรมเวิร์ค bootstrap และ database class ง่ายๆ เพียงเท่านี้เราก็สามารถสร้างระบบบริหารจัดการโปรแกรมฐานข้อมูล MySql ได้อย่างดี การพัฒนาเป็นในรูปแบบออบเจคด้วย ไม่ต้องเสียเวลามากมายในการเขียนโค๊ด รวมถึงการหาวิธีการแสดงผล

ผู้เขียนตั้งใจจะนำไปพัฒนาต่อในส่วนของการสร้างระบบล็อกอิน รวมถึงนำไปใช้ในการบริหารจัดการบัญชีผู้ใช้งานในระบบฮอตสปอร์ตไวไฟ(radius)ในอนาคต แต่คงต้องอาศัยเวลาพัฒนาปรับปรุงไปเรื่อย ๆ แต่เนื้อหาที่น่าสนใจต่อไปก็คือการสร้างระบบล็อกอิน หากทดลองแล้วได้ผลดีประการใดก็จะได้นำมาบอกเล่ากันต่อไปในโอกาสข้างหน้า ผู้เขียนต้องขอขอบพระคุณ บจก. ไทย พรอสเพอรัส ไอที เอื้อเฟื้อพื้นที่เวบบล็อกดี ๆ มานำเสนอกัน และฝากประชาสัมพันธ์ความก้าวหน้าของทางบริษัทฯ ในการเชื่อมต่อระบบซอฟต์แวร์จีพีเอสติดตามรถกับกรมการขนส่งทางบกว่าขณะนี้ก้าวหน้าเกินกว่า 80% คาดว่า ภายในสิ้นเดือนเมษายน พ.ศ.2559 นี้ระบบการเชื่อมต่อพร้อมใบอนุญาตให้บริการจะเสร็จสิ้นสมบูรณ์