<?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>Experience Zone &#187; PHP</title>
	<atom:link href="http://www.unzeen.com/archives/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.unzeen.com</link>
	<description>Share Experience With Respect To FreeBSD/Debian/Ubuntu/PHP/C#/SEO</description>
	<lastBuildDate>Sat, 15 May 2010 06:26:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>php อ่าน/เขียน file ได้ในบรรทัดเดียว</title>
		<link>http://www.unzeen.com/archives/705</link>
		<comments>http://www.unzeen.com/archives/705#comments</comments>
		<pubDate>Wed, 06 Jan 2010 15:38:58 +0000</pubDate>
		<dc:creator>LookHin</dc:creator>
				<category><![CDATA[All Categories]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[file_get_contents]]></category>
		<category><![CDATA[file_put_contents]]></category>
		<category><![CDATA[fopen]]></category>
		<category><![CDATA[fread]]></category>

		<guid isPermaLink="false">http://www.unzeen.com/?p=705</guid>
		<description><![CDATA[ปกติเวลาเราจะทำการ เขียนหรืออ่าน file เราจะใช้ function fopen() เพื่อทำการสร้าง pointer ที่จะใช้ในการอ่านและเขียน และจะใช้ function fgets() เพื่ออ่าน และ fwrite() สำหรับเขียน แต่ php ยังมี function file_put_contents() และ file_get_contents() ที่อำนวยความสะดวกในการอ่านและเขียน file ให้ง่ายได้ในบรรทัดเดียว

ขั้นแรกมาดูวิธีการอ่านและเขียน file โดยใช้ function ปกติๆที่เคยๆกันก่อน
# ตัวอย่างการใช้ function fwrite() ในการเขียน file

1
2
3
4
5
6
7
&#60;?php
&#160;
$handle = fopen&#40;&#34;test/log.txt&#34;, &#34;a&#34;&#41;;
fwrite&#40;$handle, &#34;Write To File By PHP&#34;&#41;;
fclose&#40;$handle&#41;;
&#160;
?&#62;

# ตัวอย่างการใช้ function fgets() ในการอ่าน file

1
2
3
4
5
6
7
8
9
10
&#60;?php
&#160;
$handle = fopen&#40;&#34;test/log.txt&#34;, &#34;r&#34;&#41;;
while &#40;!feof&#40;$handle&#41;&#41; &#123;
   [...]]]></description>
			<content:encoded><![CDATA[<p>ปกติเวลาเราจะทำการ เขียนหรืออ่าน file เราจะใช้ function fopen() เพื่อทำการสร้าง pointer ที่จะใช้ในการอ่านและเขียน และจะใช้ function fgets() เพื่ออ่าน และ fwrite() สำหรับเขียน แต่ php ยังมี function file_put_contents() และ file_get_contents() ที่อำนวยความสะดวกในการอ่านและเขียน file ให้ง่ายได้ในบรรทัดเดียว<br />
<span id="more-705"></span></p>
<p>ขั้นแรกมาดูวิธีการอ่านและเขียน file โดยใช้ function ปกติๆที่เคยๆกันก่อน</p>
<p># ตัวอย่างการใช้ function fwrite() ในการเขียน file</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test/log.txt&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Write To File By PHP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p># ตัวอย่างการใช้ function fgets() ในการอ่าน file</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test/log.txt&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">feof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fgets</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4096</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$buffer</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>function พวกนี้มีมาตั้งแต่สมัย Perl สือถอดมาจนถึง php แต่ php ก็ยังได้เพิ่มความสามารถในการ อ่าน/เขียน file ให้ง่ายขึ้นเข้าไปอีก ด้วยการใช้ function file_get_contents() สำหรับอ่าน file และ file_put_contents() สำหรับการเขียนข้อมูลลง file</p>
<p>ต่อไปมาดูการอ่านและเขียนโดยใช้ function เพียงบรรทัดเดียวกันบ้าง</p>
<p># ตัวอย่างการใช้ function file_put_contents() ในการเขียน file</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test/log.txt&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Write To File By PHP&quot;</span><span style="color: #339933;">,</span> FILE_APPEND<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p># ตัวอย่างการใช้ function file_get_contents() ในการอ่าน file</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test/log.txt&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>ปล. มันคงไม่ทำให้เขียนโปรแกรมยากหรือว่าง่ายขึ้น แต่รู้เอาไว้ก็คงไม่เป็นไรมั๊ง..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unzeen.com/archives/705/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ajax ของง่ายถ้าใช้ jQuery</title>
		<link>http://www.unzeen.com/archives/669</link>
		<comments>http://www.unzeen.com/archives/669#comments</comments>
		<pubDate>Fri, 04 Dec 2009 03:33:00 +0000</pubDate>
		<dc:creator>LookHin</dc:creator>
				<category><![CDATA[All Categories]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.unzeen.com/?p=669</guid>
		<description><![CDATA[เมื่อหลายปีก่อนผมเคยเขียนเรืองการใช้งาน ajax เบื่องต้นไปแล้วรอบหนึ่งในเรื่อง &#8220;ใครๆ ก็ ajax มาดูซิมันทำงานยังไง&#8221; โดยเป็นการเขียน script ขึ้นมาใช้งานเองทั้งหมด ซึ่งอาจจะมีข้อจำกัดหลายๆอย่าง และการใช้งานก็ยุ่งยากเพระว่าต้องเรียกใช้ function และส่งค่าต่างๆเองทั้งหมด
แต่เมื่อเวลาผ่านไป ก็ได้มี library หลายๆตัวที่ถูกคิดค้นขึ้นมาเพื่อช่วยให้เราใช้งาน ajax ให้ง่ายขึ้น และตัวที่ผมจะเลือกใช้ก็คือ jQuery พระเอกของเรานี้เอง ซึ่งก็ได้นำไปใช้ในบทความก่อนๆของผมด้วย มันเทพมากๆ

เลิกโม้แล้วก็เข้าเรื่องและดูตัวอย่างกันเลย
อย่างแรกสุดของที่สุด ก็ต้องทำการ download jQuery จาก http://jquery.com/ ซะก่อน
จากนั้นมาสร้าง file ต่างๆเอาไว้ทดสอบตามนี้
ใจร้อนอยากทดสอบก็คลิก http://www.unzeen.com/example/jquery-ajax/ajax-jquery.html
ถ้าขี้เกียจพิมพ์ก็ download  http://www.unzeen.com/example/jquery-ajax/jquery-ajax.zip
# ajax-jquery.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=windows-874&#34; /&#62;
&#60;title&#62;ajax ของง่ายถ้าใช้ jQuery&#60;/title&#62;
&#160;
&#60;script type=&#34;text/javascript&#34; src=&#34;js/jquery-1.3.2.min.js&#34;&#62;&#60;/script&#62;
&#60;script type=&#34;text/javascript&#34;&#62;
// ทดสอบการใช้ [...]]]></description>
			<content:encoded><![CDATA[<p>เมื่อหลายปีก่อนผมเคยเขียนเรืองการใช้งาน ajax เบื่องต้นไปแล้วรอบหนึ่งในเรื่อง &#8220;<a href="http://www.unzeen.com/archives/175">ใครๆ ก็ ajax มาดูซิมันทำงานยังไง</a>&#8221; โดยเป็นการเขียน script ขึ้นมาใช้งานเองทั้งหมด ซึ่งอาจจะมีข้อจำกัดหลายๆอย่าง และการใช้งานก็ยุ่งยากเพระว่าต้องเรียกใช้ function และส่งค่าต่างๆเองทั้งหมด</p>
<p>แต่เมื่อเวลาผ่านไป ก็ได้มี library หลายๆตัวที่ถูกคิดค้นขึ้นมาเพื่อช่วยให้เราใช้งาน ajax ให้ง่ายขึ้น และตัวที่ผมจะเลือกใช้ก็คือ jQuery พระเอกของเรานี้เอง ซึ่งก็ได้นำไปใช้ในบทความก่อนๆของผมด้วย มันเทพมากๆ<br />
<span id="more-669"></span></p>
<p>เลิกโม้แล้วก็เข้าเรื่องและดูตัวอย่างกันเลย</p>
<p>อย่างแรกสุดของที่สุด ก็ต้องทำการ download jQuery จาก <a href="http://jquery.com/">http://jquery.com/</a> ซะก่อน</p>
<p>จากนั้นมาสร้าง file ต่างๆเอาไว้ทดสอบตามนี้</p>
<p>ใจร้อนอยากทดสอบก็คลิก <a href="http://www.unzeen.com/example/jquery-ajax/ajax-jquery.html">http://www.unzeen.com/example/jquery-ajax/ajax-jquery.html</a><br />
ถ้าขี้เกียจพิมพ์ก็ download  <a href="http://www.unzeen.com/example/jquery-ajax/jquery-ajax.zip">http://www.unzeen.com/example/jquery-ajax/jquery-ajax.zip</a></p>
<p># ajax-jquery.html</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #00bbdd;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span> xmlns<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=windows-874&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>ajax ของง่ายถ้าใช้ jQuery<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/jquery-1.3.2.min.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span>
// ทดสอบการใช้ GET
function getData(){
	$.get(&quot;get.php&quot;, { data: $(&quot;#data1&quot;).val()}, 
		function(data){
			$(&quot;#divGetData&quot;).html(data);
		}
	);
}
&nbsp;
// ทดสอบการใช้ POST
function postData(){
	$.post(&quot;post.php&quot;, { data: $(&quot;#data2&quot;).val()}, 
		function(data){
			$(&quot;#divPostData&quot;).html(data);
		}
	);
}
&nbsp;
// ทดสอบการใช้ LOAD
function loadData(){
	$(&quot;#divLoadData&quot;).load(&quot;load.php?data=&quot;+$(&quot;#data3&quot;).val());
}
&nbsp;
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form1&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form1&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;divGetData&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;data1&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;data1&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Button1&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button1&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Get&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;getData()&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">hr</span> <span style="color: #66cc66;">/</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form2&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form2&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;divPostData&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;data2&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;data2&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Button2&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button2&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Post&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;postData()&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">hr</span> <span style="color: #66cc66;">/</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form3&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form3&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;divLoadData&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;data3&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;data3&quot;</span> <span style="color: #000066;">size</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Button3&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button3&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Load&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loadData()&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p># get.php</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;You Get Data : &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p># post.php</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;You Post Data : &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p># load.php</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;You Load Data : &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>คงพอเห็นภาพกันแล้ว ต่อไปอธิบายให้งง เล็กน้อย (จะอธิบายทำไมเนี้ย)</p>
<p>เริ่มกันที่ function getData จะเป็นการเรียกใช้ method $.get ที่ jQuery ได้เตรียมไว้ให้เราอยู่แล้ว โดยที่เราก็ไม่ต้องทำอะไรมาก แค่กำหนดตัวแปรที่ต้องการจะส่ง และทำ function เพื่อรับค่ากลับมาจาก server เท่านั้น โดยจากตัวอย่างเป็นการรับค่ากลับมาแล้วนำไปแสดงใน divGetData</p>
<p>function ต่อไปเป็น postData อันนี้ก็เหมือนอันแรก แค่เปลียนจาก get เป็น post และรับข้อมูลมาแสดงผลเหมือนกัน</p>
<p>ส่วนอีกตัว loadData ตัวนี้ใช้สำหรับ load ข้อมูลมาแสดงใน div โดยเฉพาะ ทำให้ง่ายขึ้นหากเราต้องการแค่จะน้ำข้อมูลมาแสดงผล โดยไม่ต้องประมวลผลอะไรเพิ่มเติม</p>
<p>การจะเลือกว่าจะใช้ get , post , load ก็ขึ้นอยู่กับความเหมาะสมของงานนะครับ ใช้วิจารณาญาณเอา !!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unzeen.com/archives/669/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ไม่ต้องแก้ register_globals = On ก็เรียกใช้ตัวแปรแบบเดิมๆได้</title>
		<link>http://www.unzeen.com/archives/201</link>
		<comments>http://www.unzeen.com/archives/201#comments</comments>
		<pubDate>Thu, 27 Mar 2008 13:43:56 +0000</pubDate>
		<dc:creator>LookHin</dc:creator>
				<category><![CDATA[All Categories]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">/?p=201</guid>
		<description><![CDATA[ปกติแล้วเวลาทำการติดตั้ง php ค่า default ของ register_globals จะเป็น Off แต่บางครั้งเราก็มีความจำเป็นที่เราจะต้องการใช้งาน ในแบบที่ register_globals=On เช่น ไม่อยากไปแก้ code โปรแกรมเดิมที่เขียนไว้ตั้งนานแล้วบ้างล่ะ แต่จะทำยังไง ถ้าหากว่า server ที่เราจำเป็นต้องใช้งานเค้ากำหนด register_globals มาให้เป็น Off ล่ะจะทำยังไง

เคยประสบปัญหาเวลาจะทำการย้าย server หรือมีการ upgrade version ของ php เป็น version ใหม่ แล้วทาง admin เค้าไม่ได้กำหนดให้ register_globals = On กันบ้างไหม เราจะแก้ปัญหากันยังไง แก้ code ในโปรแกรมของเรา หรือว่าจะแจ้ง admin ให้เค้าแก้ php.ini ให้ ????
โดยปกติแล้วเวลาทำการติดตั้ง php ค่า default ของ register_globals จะเป็น [...]]]></description>
			<content:encoded><![CDATA[<p>ปกติแล้วเวลาทำการติดตั้ง php ค่า default ของ register_globals จะเป็น Off แต่บางครั้งเราก็มีความจำเป็นที่เราจะต้องการใช้งาน ในแบบที่ register_globals=On เช่น ไม่อยากไปแก้ code โปรแกรมเดิมที่เขียนไว้ตั้งนานแล้วบ้างล่ะ แต่จะทำยังไง ถ้าหากว่า server ที่เราจำเป็นต้องใช้งานเค้ากำหนด register_globals มาให้เป็น Off ล่ะจะทำยังไง<br />
<span id="more-201"></span></p>
<p>เคยประสบปัญหาเวลาจะทำการย้าย server หรือมีการ upgrade version ของ php เป็น version ใหม่ แล้วทาง admin เค้าไม่ได้กำหนดให้ register_globals = On กันบ้างไหม เราจะแก้ปัญหากันยังไง แก้ code ในโปรแกรมของเรา หรือว่าจะแจ้ง admin ให้เค้าแก้ php.ini ให้ ????</p>
<p>โดยปกติแล้วเวลาทำการติดตั้ง php ค่า default ของ register_globals จะเป็น Off แต่บางครั้งเราก็มีความจำเป็นที่เราจะต้องการใช้งาน ในแบบที่ register_globals=On เช่น ไม่อยากไปแก้ code โปรแกรมเดิมที่เขียนไว้ตั้งนานแล้วบ้างล่ะ แต่จะทำยังไง ถ้าหากว่า server ที่เราจำเป็นต้องใช้งานเค้ากำหนด register_globals มาให้เป็น Off</p>
<p>วันนี้ผมมี script ที่จะช่วย convert ค่าตัวแปรที่อยู่ใน $_GET, $_POST, $_FILES ให้เป็นชื่อ ตัวแปร แบบที่ถูกกำหนดใน php.ini ให้ register_globals=On จะง่ายดายเพียงใด เชิญชม..</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Convert Variable Array To Variable</span>
&nbsp;
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xVarName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">each</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     $<span style="color: #009900;">&#123;</span><span style="color: #000088;">$xVarName</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xVarName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">each</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     $<span style="color: #009900;">&#123;</span><span style="color: #000088;">$xVarName</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xVarName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">each</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     $<span style="color: #009900;">&#123;</span><span style="color: #000088;">$xVarName</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;_name&quot;</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
     $<span style="color: #009900;">&#123;</span><span style="color: #000088;">$xVarName</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;_type&quot;</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
     $<span style="color: #009900;">&#123;</span><span style="color: #000088;">$xVarName</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;_size&quot;</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'size'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
     $<span style="color: #009900;">&#123;</span><span style="color: #000088;">$xVarName</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;_error&quot;</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
     $<span style="color: #009900;">&#123;</span><span style="color: #000088;">$xVarName</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xVarvalue</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>จากนั้นก็เพียงแค่นำ code นี้ไปใส่ไว้ที่บรรทัดแรกสุดของโปรแกรมที่เราเขียน หรือว่าจะเอาไปใส่ไว้ใน file include ก็ได้นะครับ</p>
<p>ตัวอย่างจาก Source Code เราจะได้ชื่อตัวแปรใหม่ดังนี้ ซึ่งจะตรงกับชื่อตัวแปรที่ถูกกำหนดจาก register_globals=On</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;get_var1&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #666666; font-style: italic;">//ไปเป็น $get_var1</span>
&nbsp;
<span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;post_var1&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #666666; font-style: italic;">//ไปเป็น $post_var1</span>
&nbsp;
<span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;file1&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #666666; font-style: italic;">//ไปเป็น $file1, $file1_name, $file1_type, $file1_size</span></pre></td></tr></table></div>

<p><strong>อีกนิด :</strong> ถ้าเป็นไปได้ควรเขียนโปรแกรมรับค่าจาก form ต่างๆ โดยใช้ตัวแปร $_GET, $_POST,$_FILES นะครับ </p>
]]></content:encoded>
			<wfw:commentRss>http://www.unzeen.com/archives/201/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ใครๆ ก็ AJAX มาดูซิมันทำงานยังไง</title>
		<link>http://www.unzeen.com/archives/175</link>
		<comments>http://www.unzeen.com/archives/175#comments</comments>
		<pubDate>Fri, 28 Oct 2005 14:25:30 +0000</pubDate>
		<dc:creator>LookHin</dc:creator>
				<category><![CDATA[All Categories]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">/?p=175</guid>
		<description><![CDATA[มาทำการศึกษาการใช้ JavaScript และ XML ในการรับส่งขอ้มูลระหว่าง client กับ server โดยผ่านทาง XMLHttpRequest อย่างที่ใครๆเขาก็เรียกกันว่า AJAX (Asynchronous JavaScript and XML) โดย AJAX เป็นเทคนิคที่เราสามารถทำการรับส่งข้อมูลระหว่าง client กับ server ได้โดยที่เราไม่ต้องทำการ submit ข้อมูลผ่าน form แต่อย่างใด ซึ่งเทคนิคนี้เราสามารถที่จะเอามาทำ webapplication ที่มีการรับส่งข้อมูลระหว่าง client กับ server ได้โดยที่ไม่ต้องทำการ refresh หน้า browser

มีสมาชิกหลายคน email มาบอกว่าสนใจการทำงานของระบบ favorites online ว่าสามารถที่จะทำการส่งข้อมูลต่างๆ ไปเก็บที่ server ได้อย่างไร โดยที่ไม่ต้องทำการ refresh browser อย่างเช่นตอนที่เราทำการเพิ่มข้อมูลเข้าไปใน favorites online แล้วข้อมูลก็จะไปแสดงในส่วนของการแสดงผลทันที โดยที่ไม่มีการ refresh หรือว่า [...]]]></description>
			<content:encoded><![CDATA[<p>มาทำการศึกษาการใช้ JavaScript และ XML ในการรับส่งขอ้มูลระหว่าง client กับ server โดยผ่านทาง XMLHttpRequest อย่างที่ใครๆเขาก็เรียกกันว่า AJAX (Asynchronous JavaScript and XML) โดย AJAX เป็นเทคนิคที่เราสามารถทำการรับส่งข้อมูลระหว่าง client กับ server ได้โดยที่เราไม่ต้องทำการ submit ข้อมูลผ่าน form แต่อย่างใด ซึ่งเทคนิคนี้เราสามารถที่จะเอามาทำ webapplication ที่มีการรับส่งข้อมูลระหว่าง client กับ server ได้โดยที่ไม่ต้องทำการ refresh หน้า browser<br />
<span id="more-175"></span></p>
<p>มีสมาชิกหลายคน email มาบอกว่าสนใจการทำงานของระบบ favorites online ว่าสามารถที่จะทำการส่งข้อมูลต่างๆ ไปเก็บที่ server ได้อย่างไร โดยที่ไม่ต้องทำการ refresh browser อย่างเช่นตอนที่เราทำการเพิ่มข้อมูลเข้าไปใน favorites online แล้วข้อมูลก็จะไปแสดงในส่วนของการแสดงผลทันที โดยที่ไม่มีการ refresh หรือว่า การคลิกขวาเพื่อเลือก group ก็ไม่มีการ refresh เหมือนกัน เมื่อมีสมาชิกขอมากเราก็จะจัดให้</p>
<p>ที่จริงแล้วการทำงานของระบบก็ไม่ได้ยากอะไร เพียงแค่ใช้เจ้า AJAX (Asynchronous JavaScript and XML) ในการทำงานเท่านั้น ความ จริงแล้ว AJAX ไม่ใช้เทคโนโลยีใหม่แต่อย่างใด เป็นเพียงการนำ XML และ JavaScript มาใช้งานร่วมกัน เพื่อทำการส่งข้อมูลระหว่าง client กับ serverเท่านั้น</p>
<p>ตัวอย่าง website ที่มีการนำ AJAX ไปใช้งาน</p>
<p>Gmail<br />
http://www.gmail.com/</p>
<p>Google Suggest<br />
http://www.google.com/webhp?complete=1&#038;hl=en</p>
<p>และตอนนี้ www.hotmail.com เองก็กำลังทำ Hotmail ตัวใหม่ที่ใช้ AJAX เหมือนกัน</p>
<p>ก่อนที่จะไปดู code ตัวอย่างมาดูที่หลักการทำงานกันก่อน</p>
<p>หลักการทำงานของ AJAX ก็คือ จะมี JavaScritp ชุดหนึงที่จะทำหน้าที่ Request ข้อมูลจากทาง server ผ่านทาง XMLHttpRequest และทำการนำค่าที่ได้นั้นออกมาแสดงที่หน้า browser อีกที โดยข้อมูลที่จะรับเข้ามานั้นจะเป็น XML หรือว่าเป็น text plan ธรรมดาก็ได้ แต่ในตัวอย่าง ผมจะแนะนำการรับข้อมูลที่เป็น text ธรรมดาเท่านั้นนะครับ เพื่อให้ง่ายต่อความเข้าใจ</p>
<p>โอ้ว พระแม่เจ้า นี้ขนาดอธิบายการทำงาน ยังงงเองเลยนะนี้ ไม่อธิบายแล้วไปดูตัวอย่างกันเลยดีกว่า</p>
<p>ในตัวอย่างต่อไปนี้ จะเป็นการส่งค่าของ ตัวเลข 2 ตัวไปบวกกันที่ server และรับค่ากลับมาแสดงผลที่หน้า browser  โดยโปรแกรมทางฝั่ง server เราก็จะใช้ php เหมือนเดิม (คิดได้ไงอะ ตัวอย่างโปรแกรมบวกเลข โดยส่งค่าตัวเลข 2 ตัวไปบวกที่ server)</p>
<p>ขั้นแรกสร้าง file html ขึ้นมาก่อน</p>
<p><strong>xmlhttp.html</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>html<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>head<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>title<span style="color: #339933;">&gt;</span> AJAX Example by www<span style="color: #339933;">.</span>unzeen<span style="color: #339933;">.</span>com<span style="color: #339933;">&lt;/</span>title<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>meta http<span style="color: #339933;">-</span>equiv<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Content-Type&quot;</span> content<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/html; charset=windows-874&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>style type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/css&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;!--</span>
body<span style="color: #339933;">,</span>td<span style="color: #339933;">,</span>th <span style="color: #009900;">&#123;</span>
    font<span style="color: #339933;">-</span>family<span style="color: #339933;">:</span> MS Sans Serif<span style="color: #339933;">,</span> Microsoft Sans Serif<span style="color: #339933;">,</span> Tahoma<span style="color: #339933;">;</span>
    font<span style="color: #339933;">-</span>size<span style="color: #339933;">:</span> 10pt<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">--&gt;</span>
<span style="color: #339933;">&lt;/</span>style<span style="color: #339933;">&gt;&lt;/</span>head<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>body<span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;script language</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #666666; font-style: italic;">// Start XmlHttp Object</span>
<span style="color: #000000; font-weight: bold;">function</span> uzXmlHttp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> xmlhttp <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    try<span style="color: #009900;">&#123;</span>
        xmlhttp <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ActiveXObject<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Msxml2.XMLHTTP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>catch<span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        try<span style="color: #009900;">&#123;</span>
            xmlhttp <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ActiveXObject<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Microsoft.XMLHTTP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>catch<span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            xmlhttp <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>xmlhttp <span style="color: #339933;">&amp;&amp;</span> document<span style="color: #339933;">.</span>createElement<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        xmlhttp <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">return</span> xmlhttp<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">// End XmlHttp Object</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getresult<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// เอาค่าจาก form มาเก็บลง num1,num2</span>
    <span style="color: #000000; font-weight: bold;">var</span> num1 <span style="color: #339933;">=</span> document<span style="color: #339933;">.</span>form1<span style="color: #339933;">.</span>num1<span style="color: #339933;">.</span>value<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">var</span> num2 <span style="color: #339933;">=</span> document<span style="color: #339933;">.</span>form1<span style="color: #339933;">.</span>num2<span style="color: #339933;">.</span>value<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">var</span> result<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">var</span> url <span style="color: #339933;">=</span> <span style="color: #0000ff;">'ajax.php?num1='</span> <span style="color: #339933;">+</span> num1 <span style="color: #339933;">+</span> <span style="color: #0000ff;">'&amp;num2='</span><span style="color: #339933;">+</span> num2<span style="color: #339933;">;</span>    
    xmlhttp <span style="color: #339933;">=</span> uzXmlHttp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    xmlhttp<span style="color: #339933;">.</span>open<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;GET&quot;</span><span style="color: #339933;">,</span> url<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    xmlhttp<span style="color: #339933;">.</span>send<span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;">// รับค่ากลับจาก server มาเก็บลง result</span>
    result <span style="color: #339933;">=</span> xmlhttp<span style="color: #339933;">.</span>responseText<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// นำค่าที่ได้ออกไปแสงผล</span>
    document<span style="color: #339933;">.</span>form1<span style="color: #339933;">.</span>result<span style="color: #339933;">.</span>value <span style="color: #339933;">=</span> result<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>form name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;form1&quot;</span> method<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;post&quot;</span> action<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;</span>br<span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;</span>table width<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;365&quot;</span> border<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;0&quot;</span> cellpadding<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1&quot;</span> cellspacing<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1&quot;</span> bgcolor<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;#CCCCCC&quot;</span><span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>tr bgcolor<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;#FFFFFF&quot;</span><span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td colspan<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;2&quot;</span><span style="color: #339933;">&gt;&lt;</span>strong<span style="color: #339933;">&gt;</span>โปรแกรมบวกเลขที่ server<span style="color: #339933;">&lt;/</span>strong<span style="color: #339933;">&gt;&lt;/</span>td<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;/</span>tr<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>tr bgcolor<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;#FFFFFF&quot;</span><span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td<span style="color: #339933;">&gt;</span>ตัวเลขที่ <span style="color: #cc66cc;">1</span><span style="color: #339933;">&lt;/</span>td<span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td<span style="color: #339933;">&gt;&lt;</span>input name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;num1&quot;</span> type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text&quot;</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;num1&quot;</span><span style="color: #339933;">&gt;&lt;/</span>td<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;/</span>tr<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>tr bgcolor<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;#FFFFFF&quot;</span><span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td<span style="color: #339933;">&gt;</span>ตัวเลขที่ <span style="color: #cc66cc;">2</span><span style="color: #339933;">&lt;/</span>td<span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td<span style="color: #339933;">&gt;&lt;</span>input name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;num2&quot;</span> type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text&quot;</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;num2&quot;</span><span style="color: #339933;">&gt;&lt;/</span>td<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;/</span>tr<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>tr bgcolor<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;#FFFFFF&quot;</span><span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td colspan<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;2&quot;</span><span style="color: #339933;">&gt;&lt;</span>strong<span style="color: #339933;">&gt;</span>ค่าที่รับกลับมาจาก server <span style="color: #339933;">&lt;/</span>strong<span style="color: #339933;">&gt;&lt;/</span>td<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;/</span>tr<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>tr bgcolor<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;#FFFFFF&quot;</span><span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td<span style="color: #339933;">&gt;</span>ผลบวก<span style="color: #339933;">&lt;/</span>td<span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td<span style="color: #339933;">&gt;&lt;</span>input name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;result&quot;</span> type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text&quot;</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;result&quot;</span><span style="color: #339933;">&gt;&lt;/</span>td<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;/</span>tr<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>tr bgcolor<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;#FFFFFF&quot;</span><span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td<span style="color: #339933;">&gt;&amp;</span>nbsp<span style="color: #339933;">;&lt;/</span>td<span style="color: #339933;">&gt;</span>
      <span style="color: #339933;">&lt;</span>td<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;button&quot;</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;Button&quot;</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;นำไปบวกที่ server &quot;</span> onClick<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;getresult();&quot;</span><span style="color: #339933;">&gt;&lt;/</span>td<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;/</span>tr<span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;/</span>table<span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;</span>br<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>body<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>html<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>ต่อไปก็มาทำตัวโปรแกรมที่จะใช้บวกเลขกันต่อเลย โดยที่โปรแกรม ajax.php จะรับค่า $num1 และ $num2 เข้ามา จากนั้นจะทำการบวกกัน และนำค่าที่ได้ไปเก็บไว้ที่ $result และทำการ print ค่า $result ออกมา</p>
<p><strong>ajax.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$num1</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$num2</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>เมือ่สร้างทั้ง 2 file เสร็จแล้วเราก็มาลองทดสอบการทำงานของโปรแกรมกันดูเลย โดยจะ upload ขึ้นไปที่ server ของคุณ หรือว่าจะทดสอบ จาก script ของผมก็ได้ http://www.unzeen.com/example/xmlhttp/xmlhttp.html</p>
<p>ต่อไปมาดูหลักการทำงานของโปรแกรมบวกเลขนี้กัน จะเห็นว่าที่ file xmlhttp.html จะมี JavaScript ดังนี้ ผมจะอธิบายการทำงาน ตาม code ไปเลยนะครับ</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script language<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #006600; font-style: italic;">/**
function uzXmlHttp เป็น function ที่ใช้สร้าง object ของ XMLHTTP
จะเห็นว่าเราจะทำการตรวจสอบ ก่อนว่าบนเครื่องนี้มี XMLHTTP ตัวไหนอยู่
&nbsp;
โดยจะทำการเรียกใช้ Msxml2.XMLHTTP ก่อนหากว่าไม่พอก็จะไปเรียก Microsoft.XMLHTTP
และหากว่าไม่พบอีกก็จะไปเรียกใช้ XMLHttpRequest
&nbsp;
ซึ่ง XMLHTTP 2 ตัวแรกคือ Msxml2.XMLHTTP กับ Microsoft.XMLHTTP จะเป็นตัวที่ทำงานบน IE
และตัว XMLHttpRequest ก็จะเป็นตัวที่ทำงานบน Firefox
ดังนั้นเราจึงสามารถใช้ script ตัวนี้ได้ทั้ง IE และ Firefox
โดยสามารถทำงานได้ทั้งบน Windows และ Linux
&nbsp;
**/</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Start XmlHttp Object</span>
<span style="color: #003366; font-weight: bold;">function</span> uzXmlHttp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> xmlhttp <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
        xmlhttp <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> ActiveXObject<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Msxml2.XMLHTTP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
            xmlhttp <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> ActiveXObject<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Microsoft.XMLHTTP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            xmlhttp <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>xmlhttp <span style="color: #339933;">&amp;&amp;</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        xmlhttp <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">return</span> xmlhttp<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #006600; font-style: italic;">// End XmlHttp Object</span>
&nbsp;
<span style="color: #006600; font-style: italic;">/*
function getresult เป็น function ที่จะทำการส่งค่า ของ num1 และ num2 ไปที่ server โดยผ่าน Method GET
และจะทำการรับค่ากลับจาก server โดยผ่าน properties responseText และนำค่าที่ได้มาเก็บไว้ที่ตัวแปร result
จากนั้นก็จะนำค่าที่ได้ไปแสดงที่ Text Field ที่ชื่อ result อีกทีหนึง
&nbsp;
*/</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> getresult<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// เอาค่าจาก form มาเก็บลง num1,num2</span>
    <span style="color: #003366; font-weight: bold;">var</span> num1 <span style="color: #339933;">=</span> document.<span style="color: #660066;">form1</span>.<span style="color: #660066;">num1</span>.<span style="color: #660066;">value</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> num2 <span style="color: #339933;">=</span> document.<span style="color: #660066;">form1</span>.<span style="color: #660066;">num2</span>.<span style="color: #660066;">value</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> result<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// กำหนด URL ของโปรแกรมที่จะรับค่าและใส่ค่าของตัวแปรที่ต้องการส่งไปด้วย</span>
    <span style="color: #003366; font-weight: bold;">var</span> url <span style="color: #339933;">=</span> <span style="color: #3366CC;">'ajax.php?num1='</span> <span style="color: #339933;">+</span> num1 <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&amp;num2='</span><span style="color: #339933;">+</span> num2<span style="color: #339933;">;</span>    
&nbsp;
    xmlhttp <span style="color: #339933;">=</span> uzXmlHttp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    xmlhttp.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;GET&quot;</span><span style="color: #339933;">,</span> url<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    xmlhttp.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// รับค่ากลับจาก server มาเก็บลง result</span>
    result <span style="color: #339933;">=</span> xmlhttp.<span style="color: #660066;">responseText</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// นำค่าที่ได้ออกไปแสงผล</span>
    document.<span style="color: #660066;">form1</span>.<span style="color: #660066;">result</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> result<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>มาถึงตรงนี้ หลายคนก็พอจะได้แนวคิดที่จะนำไปใช้ทำ webapplication ของตัวเองบ้างแล้วนะครับ<br />
ขอให้สนุกกับการใช้ AJAX ครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unzeen.com/archives/175/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>มาหัดเขียน wap ไว้เปิดบนมือถือกันหน่อยดีไหม</title>
		<link>http://www.unzeen.com/archives/172</link>
		<comments>http://www.unzeen.com/archives/172#comments</comments>
		<pubDate>Sat, 01 Oct 2005 02:33:44 +0000</pubDate>
		<dc:creator>LookHin</dc:creator>
				<category><![CDATA[All Categories]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wap]]></category>

		<guid isPermaLink="false">/?p=172</guid>
		<description><![CDATA[แนะนำการเขียน wap โดยไม่ต้องกำหนด ให้ file มีนามสกุล .wml และไม่ต้องทำการ config ค่าใดๆที่ webserver ขอเพียงให้ webserver ทำการ run php ได้ก็เพียงพอแล้วครับ โดยเราจะใช้เทคนิคในการเปลี่ยน Content-type จาก Content-type: text/html ไปเป็น Content-type: text/vnd.wap.wml อยากรู้ก็ตามเข้าไปดูกันเลย

หลายคนคงอยากจะเขียน wap เพื่อที่จะได้นำข้อมูลใน website ของตัวเองไป แสดงที่หน้าจอของมือถือ แต่อาจจะติดปัญหาตรงที่ Hosting ที่เช่าอยู่ ไม่รองรับให้มีการใช้งาน wap เพราะว่าการจะทำ wap site ขึ้นมานั้น web server จะต้อง รองรับให้มีการเรียกใช้งาน file ที่มีนามสกุล .wml ด้วย หลายคนที่คิดจะทำ wap site เพื่อเป็นทางเลือกในการเข้าถึงข้อมูลใน website ของตัวเองผ่านทางมือถือ ก็เลยอาจจะเลิกล้ม [...]]]></description>
			<content:encoded><![CDATA[<p>แนะนำการเขียน wap โดยไม่ต้องกำหนด ให้ file มีนามสกุล .wml และไม่ต้องทำการ config ค่าใดๆที่ webserver ขอเพียงให้ webserver ทำการ run php ได้ก็เพียงพอแล้วครับ โดยเราจะใช้เทคนิคในการเปลี่ยน Content-type จาก Content-type: text/html ไปเป็น Content-type: text/vnd.wap.wml อยากรู้ก็ตามเข้าไปดูกันเลย<br />
<span id="more-172"></span></p>
<p>หลายคนคงอยากจะเขียน wap เพื่อที่จะได้นำข้อมูลใน website ของตัวเองไป แสดงที่หน้าจอของมือถือ แต่อาจจะติดปัญหาตรงที่ Hosting ที่เช่าอยู่ ไม่รองรับให้มีการใช้งาน wap เพราะว่าการจะทำ wap site ขึ้นมานั้น web server จะต้อง รองรับให้มีการเรียกใช้งาน file ที่มีนามสกุล .wml ด้วย หลายคนที่คิดจะทำ wap site เพื่อเป็นทางเลือกในการเข้าถึงข้อมูลใน website ของตัวเองผ่านทางมือถือ ก็เลยอาจจะเลิกล้ม ความคิดที่จะทำนี้ไป</p>
<p>แต่เดี่ยวก่อน ในเมื่อ webserver ของเราไม่สนับสนุน file .wml เราก็หาทางออกวิธีอื่นก็ได้ วันนี้ผมจะมาแนะนำการเขียน wap โดยที่ไม่ต้องทำการ config ค่าใดๆ ที่ server เลย ขอเพียงให้ webserver ทำการ run PHP ได้ก็มากเพียงพอแล้วครับ</p>
<p><strong>มาเริ่มที่หลักการกันก่อนนะครับ</strong></p>
<p>ในการเปิดดู wapsite จากมือถือนั้น มือถือจะทำการส่งคำร้องขอไปที่ webserver เพื่อขอเปิดดูข้อมูลใน file .wml จากนั้น webserver ก็จะทำการส่งข้อมูล ของหน้าที่ต้องการนั้น กลับมาที่มือถือ โดยมี Content-type เป็นดังนี้</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">Content-type = text/vnd.wap.wml</pre></td></tr></table></div>

<p>ซึ่งเมื่อมือถือได้รับ Content-type เป็น text/vnd.wap.wml ก็จะสามารถใช้ browser ที่อยู่ในมือถือแสดงข้อมูล ที่ถูกส่งมาจาก server ในหน้าจอของมือถือได้ แต่โดยปกติแล้ว webserver ส่วนใหญ่ที่ไม่ได้ทำการ config อะไรเพิ่มเข้าไป จะส่ง Content-type ออกมาเป็น</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">Content-type = text/html</pre></td></tr></table></div>

<p>ซึ่งเจ้า Content-type นี้ browser ในตัวของมือถือจะไม่สามารถเปิดขึ้นมาได้ </p>
<p>จากหลักการที่กล่าวมาเราจะเห็นแล้วว่า browser บนมือถือสามารถจะอ่านข้อมูลที่มี Conten-type ที่เป็น text/vnd.wap.wml ได้ เพียงอย่างเดี่ยวเท่านั้น เพราะถ้ามีการส่ง Content-type ที่เป็น text/html เข้ามาก็จะเกิด Error ขึ้น</p>
<p>เมื่อเราเข้าใจในหลักการทำงาน ขั้นพื้นฐานอันนี้แล้ว เราก็สามารถที่จะนำหลักการนี้มาใช้ได้ โดยเราจะเขียน wap ขึ้นมาโดยใช้ โปรแกรม PHP ธรรมดา แต่จะมีการเปลี่ยน Content-type ของข้อมูลเป็น text/vnd.wap.wml เพื่อให้มือถือสามารถเปิดได้</p>
<p><strong>มาเริ่มดูวิธีการกันเลย</strong></p>
<p>อย่างแรกคุณต้องมี browser ที่สามารถเปิดดู wap ได้ หรือว่าใครจะใช้มือถือในการทดสอบเลยก็ได้นะครับ ถ้าไม่ห่วงเรื่องค่าใช้จ่าย</p>
<p>โดยส่วนตัวผมเองก็ใช้ Firefox ในการทดสอบเหมือนเดิมครับ แต่ว่าต้องทำการลง Extension เพิ่มเติมนิดหน่อย นั้นก็คือ wmlbrowser extension ซึ่งเจ้า extension ตัวนี้จะช่วยทำให้ Firefox ของเราสามารถที่จะเปิดดู wapsite ได้</p>
<p>ในการติดตั้ง extension ให้ใช้ Firefox เข้าไปที่ URL นี้ครับ</p>
<p>https://addons.mozilla.org/extensions/moreinfo.php?id=62</p>
<p><img src="/wp-content/uploads/2008/06/wap_01.jpg" alt="" title="" /></p>
<p>จากนั้นก็คลิก Install มันซะ</p>
<p>เมื่อทำการติดตั้ง Extension เสร็จเรียบร้อยแล้ว เราก็พร้อมที่จะใช้ Firefox ในการเปิด wap ได้แล้วครับ</p>
<p>ให้ทดลองทำการเปิด wapsite ดูได้ที่ http://www.unzeen.com/example/wap/test.php </p>
<p><img src="/wp-content/uploads/2008/06/wap_02.jpg" alt="" title="" /></p>
<p>หากว่าได้ดังภาพก็แสดงว่าสามารถที่จะใช้งานได้แล้วครับ</p>
<p><strong>ต่อไปก็มาเริ่มทำการเขียนโปรแกรมกันดูบ้าง</strong></p>
<p><strong>test.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-type: text/vnd.wap.wml&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;&lt;?xml version=<span style="color: #000099; font-weight: bold;">\&quot;</span>1.0<span style="color: #000099; font-weight: bold;">\&quot;</span>?&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;!DOCTYPE wml PUBLIC &quot;-//WAPFORUM//DTD WML 1.1//EN&quot;
&quot;http://www.wapforum.org/DTD/wml_1.1.xml&quot;&gt;
&nbsp;
&lt;wml&gt;
&nbsp;
&lt;card id=&quot;HTML&quot; title=&quot;UNZEEN WAP&quot;&gt;
&lt;p&gt;
Hello wap world!&lt;br/&gt;
Test on www.unzeen.com&lt;br/&gt;
&lt;/p&gt;
&lt;/card&gt;
&nbsp;
&lt;/wml&gt;</pre></td></tr></table></div>

<p>จากตัวโปรแกรมจะเห็นว่ามีการกำหนด</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-type: text/vnd.wap.wml&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>ไว้ในบรรทัดแรกของโปรแกรมเพื่อให้มีการเปลี่ยน Content-type เป็น text/vnd.wap.wml นั้นเองครับ</p>
<p>เมื่อ ทำการเขียนโปรแกรมเสร็จให้คุณทำการ upload ขึ้นไปที่ server ของคุณจากนั้นลองทำการใช้ Firefox เปิดขึ้นมา หากว่าได้หน้าตาเหมือนกับรูปที่ผ่านมา ก็แสดงว่าใช้ได้แล้วครับ จากนั้นคุณก็ลองใช้มือถือเข้าไปเปิดดูหน้า wap ที่เราสร้างขึ้นได้เลย</p>
<p>ที่ นี้ก็เป็นหน้าที่ของคุณแล้วละครับ ที่จะต้องไปศึกษา ดูว่าเจ้าคำสังของ wap นี้มันมีอะไร บ้าง ซึ่งผมก็คิดว่าไม่น่าจะยากเย็นอะไร เพราะว่าคำสังก็จะคล้ายๆกับ HTML ที่เราใช้ๆกันอยู่</p>
<p><strong>เพิ่มเติม</strong><br />
คุณสามารถหาขอ้มูลคำสั่งของ wap ได้ที่ http://www.w3schools.com/wap/default.asp ลองๆไปศึกษาดูครับ คุณอาจจะนำมันมาใช้ทำอะไร ที่เป็นประโยชน์ กับคุณได้มากขึ้นก็ได้ อย่างเช่น ทำระบบการตรวจสอบข้อมูลของสมาชิกที่สมัครเข้ามาใหม่ใน website ของเรา เพื่อทำการกำหนด ระดับการใช้งานของเขาผ่านทาง wap เลยก็ได้ ตอนนี้ขอตัว wap ไปกินข้าวก่อนครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unzeen.com/archives/172/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>เทคนิคการใช้งาน session ใน php</title>
		<link>http://www.unzeen.com/archives/171</link>
		<comments>http://www.unzeen.com/archives/171#comments</comments>
		<pubDate>Sun, 18 Sep 2005 11:08:34 +0000</pubDate>
		<dc:creator>LookHin</dc:creator>
				<category><![CDATA[All Categories]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">/?p=171</guid>
		<description><![CDATA[พอดีได้รับ email จากสมาชิกท่านหนึ่งเขียนมาบอกว่าอยากให้ นำเสนอบทความเกี่ยวกับการใช้งาน session บ้าง ผมเองก็นั้งคิดอยู่นานเหมือนกันว่าจะเขียนเรื่องอะไร เกี่ยวกับ session ดีถึงจะ unzeen เพราะว่า session เองก็เป็นแค่รูปแบบการเก็บค่าตัวแปรไว้ใช้งานในช่วงระยะวเวลาหนึ่งเท่านั้น เอง แต่ผมก็พอจะมี เทคนิคการใช้งาน session เล็กๆ น้อยมาฝากอยู่เหมือนกัน เผื่อว่าจะมีประโยชน์กับใครบ้าง

ในการใช้งาน session นั้นเราสามารถเรียกใช้งานได้โดยการประกาศ session_start(); ไว้ที่บรรทัดแรกสุดของโปรแกรม
(บรรทัดแรกสุด หมายถึงว่า บรรทัดก่อนที่จะมีการสั่ง print ข้อมูลใดๆ ออกมาแสดงผลนะครับ)
ในการใช้ตัวแปร session นั้นสามารถใช้งานได้หลายแบบ ไม่ว่าจะเรียกใช้ แบบตัวแปรธรรมดา หรือว่าจะเรียกใช้โดยผ่านทาง $_SESSION[] ซึ่งเป็น array ของ session เอง (ในคู่มือของ PHP เขาแนะนำให้เราใช้ $_SESSION[] เพราะว่าจะทำให้ code ที่ เราเขียนดูเป็นระเบียบและไม่ต้องทำการเรียกใช้ session_register() แต่ตัวอย่างที่ผมจะใช้ ผมจะใช้แบบตัวแปรธรรมดา แล้วกัน นะครับ ใครอยากใช้แบบไหน [...]]]></description>
			<content:encoded><![CDATA[<p>พอดีได้รับ email จากสมาชิกท่านหนึ่งเขียนมาบอกว่าอยากให้ นำเสนอบทความเกี่ยวกับการใช้งาน session บ้าง ผมเองก็นั้งคิดอยู่นานเหมือนกันว่าจะเขียนเรื่องอะไร เกี่ยวกับ session ดีถึงจะ unzeen เพราะว่า session เองก็เป็นแค่รูปแบบการเก็บค่าตัวแปรไว้ใช้งานในช่วงระยะวเวลาหนึ่งเท่านั้น เอง แต่ผมก็พอจะมี เทคนิคการใช้งาน session เล็กๆ น้อยมาฝากอยู่เหมือนกัน เผื่อว่าจะมีประโยชน์กับใครบ้าง<br />
<span id="more-171"></span><br />
ในการใช้งาน session นั้นเราสามารถเรียกใช้งานได้โดยการประกาศ session_start(); ไว้ที่บรรทัดแรกสุดของโปรแกรม<br />
(บรรทัดแรกสุด หมายถึงว่า บรรทัดก่อนที่จะมีการสั่ง print ข้อมูลใดๆ ออกมาแสดงผลนะครับ)</p>
<p>ในการใช้ตัวแปร session นั้นสามารถใช้งานได้หลายแบบ ไม่ว่าจะเรียกใช้ แบบตัวแปรธรรมดา หรือว่าจะเรียกใช้โดยผ่านทาง $_SESSION[] ซึ่งเป็น array ของ session เอง (ในคู่มือของ PHP เขาแนะนำให้เราใช้ $_SESSION[] เพราะว่าจะทำให้ code ที่ เราเขียนดูเป็นระเบียบและไม่ต้องทำการเรียกใช้ session_register() แต่ตัวอย่างที่ผมจะใช้ ผมจะใช้แบบตัวแปรธรรมดา แล้วกัน นะครับ ใครอยากใช้แบบไหน ก็ลองใช้กันดูแล้วแต่ถนัด)</p>
<p>ก่อนทำการทดสอบ โปรแกรมให้สร้าง folder session ขึ้นมาก่อน (สร้างไว้ใน folder ที่เราจะทดสอบโปรแกรมเลยนะครับ) และทำการเปลี่ยน permission ให้เป็น 777 เพื่อให้สามารถทำการเขียนข้อมูล ลงไปได้ (หากใช้ windows คงไม่ต้องเปลี่ยน) เพื่อเอาไว้เก็บค่า session ต่างๆ ที่เกิดขึ้น โดยปกติแล้ว เมื่อเราทำการสร้าง session ขึ้นมาจะมี การสร้าง file session เอาไว้เก็บข้อมูลของตัวแปรต่างๆด้วย ซึ่งหากว่าเราไม่ได้ กำหนด session_save_path() ไว้ที่โปรแกรมของเรา session ที่เราสร้างก็จะถูกนำไปเก็บไว้ที่ /tmp ในระบบ Unix/Linux หรือ c:\tmp ในระบบ windows แต่ถ้าเป็นผมแนะนำให้สร้าง folder ไว้เก็บ session ของเราไว้ต่างหากดีกว่าไม่ต้องไปรวมไว้กับของ คนอื่นเขาเพื่อความปลอดภัยของข้อมูลที่เราเก็บลง session ด้วย เพราะว่าข้อมูลที่เราเก็บลง session จะเป็นแค่ text ธรรมดาไม่ได้มีการเข้ารหัสเอาไว้ อาจจะทำให้ผู้ไม่ประสงค์ดีทำการ hack ข้อมูลเอาไปได้หากว่าเราเก็บ session ไว้ใน path เดิมของระบบ</p>
<p>มาทำการทดสอบโปรแกรมแรกของเรากันก่อนเลย โดยเราจะตั้งชื่อโปรแกรมว่า test1.php และมีข้อมูลตามตัวอย่างต่อไปนี้</p>
<p><strong>test1.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">session_save_path</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;./session/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$test1</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;xxxxxxx&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$test2</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;yyyyyyy&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">session_register</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">session_register</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;Start Session OK&lt;br&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #000088;">$test1</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #000088;">$test2</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br&gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;&lt;a href='test2.php'&gt;Delete Session&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>จากนั้นให้ทดลองทำการเรียกโปรแกรมขึ้นมา ค่าที่แสดงออกมาจะได้ เป็นค่าของตัวแปร $test1 และ $test2 จากนั้นให้คุณทำการเปิด folder session ขึ้นมาดูจะพบว่ามี file session ถูกสร้างขึ้นมาแล้ว โดยจะมีรูปแบบของชื่อ file ดังนี้ sess_5e3e8cbd40ea2c9cc09a881c3ee4b3fa จากนั้นลองใช้ Edit+ เปิด file ดังกล่าวขึ้นมาดู เราจะพบว่ามีข้อมูลของ ตัวแปรที่เราใช้งานในโปรแกรมอยู่ ดังตัวอย่าง</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">test1|s:7:&quot;xxxxxxx&quot;;test2|s:7:&quot;yyyyyyy&quot;;</pre></td></tr></table></div>

<p>จะเห็นได้ว่าการเก็บข้อมูลของ session นั้นไม่ได้ทำการเข้าหรัสข้อมูลไว้แต่อย่างใด ซึ่งมันคงจะไม่ปลอดภัยนักหากว่าเราจะใช้เก็บ user และ password ของสมาชิกที่ทำการ login เข้ามาในระบบของเรา ดังนั้นเราควรที่จะทำการเข้ารหัสข้อมูลต่างๆ ก่อนที่จะทำการเก็บ ลง session เราอาจจะทำการเขียน function การเข้ารหัสและถอดรหัสง่ายๆ ขึ้นมาใช้เองก็ได้ เพราะ function การเข้ารหัสแบบ md5() ที่มีใน php นั้นอาจจะไม่เหมาะที่เราจะนำมาใช้ในการเข้ารหัสของตัวแปร เนื่องจาก md5 เป็นการเข้ารหัสทางเดี่ยวเราไม่สามารถทำการ ถอดรหัสออกมาเป็นข้อมูลชุดเดิมได้ ดังนั้นเขียน function เข้ารหัสและถอดรหัสง่ายๆ ไว้ใช้เองดีกว่า (เขียนเองนะครับ)</p>
<p>จากตัวอย่างที่ผ่านมา เมื่อเราเลิกใช้งานโปรแกรมแล้วหรือปิด browser ลงไปแล้วก็ตาม แต่ file session ที่ถูกสร้างขึ้นมา ก็ยังไม่ถูกลบออกไป ทั้งนี้เนื่องจากว่าเรายังไม่ได้ทำการยกเลิกการใช้งาน session นั้นออกจากระบบ วิธีการยกเลิก session สามารถทำได้โดยการเรียกใช้ session_destroy() ซึ่งมี code ตัวอย่างต่อไปนี้</p>
<p><strong>test2.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">session_save_path</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;./session/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">session_unset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">session_destroy</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;&lt;br&gt;Delete Session OK&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>จะเห็นได้ว่าเมื่อเราทำการเรียกใช้งาน file test2.php session ที่เราสร้างขึ้นก็จะถูกลบออกไปด้วย</p>
<p><strong>เพิ่มเติม</strong> ในการใช้งาน session หากว่าเราทำการเปิด browser ขึ้นมาอีก windows หนึ่งและเรียกโปรแกรมตัวเดี่ยวกันขึ้นมา<br />
session ก็จะถูกสร้างขึ้นมาใหม่เสมอ ฉะนั้นหากว่าเราทำการใช้งาน session แล้วก็อย่าลืมทำการลบ session นั้นทิ้งด้วยนะครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unzeen.com/archives/171/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Backup MySQL แล้วส่งเข้า gmail โดยใช้ php</title>
		<link>http://www.unzeen.com/archives/129</link>
		<comments>http://www.unzeen.com/archives/129#comments</comments>
		<pubDate>Sun, 28 Aug 2005 10:45:15 +0000</pubDate>
		<dc:creator>LookHin</dc:creator>
				<category><![CDATA[All Categories]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Shell/Command]]></category>
		<category><![CDATA[Software/Tools]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[MySQL/SQL]]></category>

		<guid isPermaLink="false">/?p=129</guid>
		<description><![CDATA[วันนี้ผมจะมาแนะนำการทำการ backup ข้อมูลของ MySQL ไปเก็บไว้ที่ gmail โดยจะทำการตั้งเวลาการ backup โดยใช้ crontab ผ่านทาง controlpanel ของ PLESK (ถ้าหากว่าใครใช้ controlpanel ตัวอื่นก็ไปหาวิธีการตั้ง crontab เอาเองนะครับ) โดยจะตั้งให้ทำการ backup database MySQL ในเวลา เวลา 24.00 น. ของทุกๆวัน

หลังจากห่างหายไม่ได้เขียนบทความหลายวัน วันนี้เลยขอเสนอบทความที่คิดว่าจะมีประโยชน์มากสำหรับ หลายๆคนที่มี website อยู่และต้องการที่ จะทำการ backup ข้อมูล เพราะเราไม่อาจจะทราบได้ว่า server ที่เราใช้อยู่จะตายเมื่อไร
ถ้า หากว่าคุณมี server เป็นของตัวเอง 2 ตัว การที่จะทำการ backup ข้อมูลจากเครื่องหนึ่งไปไว้ที่อีกเครื่องหนึ่งก็ไม่ใช่เรื่องอยากอะไร แต่ถ้าหากว่าเราเป็นแค่ผู้เช่า hosting ธรรมดารายหนึ่ง ไม่มีเงินพอที่จะไปซื้อ server ไปว่างที่ ISP เองก็คงจะอยากที่จะทำการ backup [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้ผมจะมาแนะนำการทำการ backup ข้อมูลของ MySQL ไปเก็บไว้ที่ gmail โดยจะทำการตั้งเวลาการ backup โดยใช้ crontab ผ่านทาง controlpanel ของ PLESK (ถ้าหากว่าใครใช้ controlpanel ตัวอื่นก็ไปหาวิธีการตั้ง crontab เอาเองนะครับ) โดยจะตั้งให้ทำการ backup database MySQL ในเวลา เวลา 24.00 น. ของทุกๆวัน<br />
<span id="more-129"></span></p>
<p>หลังจากห่างหายไม่ได้เขียนบทความหลายวัน วันนี้เลยขอเสนอบทความที่คิดว่าจะมีประโยชน์มากสำหรับ หลายๆคนที่มี website อยู่และต้องการที่ จะทำการ backup ข้อมูล เพราะเราไม่อาจจะทราบได้ว่า server ที่เราใช้อยู่จะตายเมื่อไร</p>
<p>ถ้า หากว่าคุณมี server เป็นของตัวเอง 2 ตัว การที่จะทำการ backup ข้อมูลจากเครื่องหนึ่งไปไว้ที่อีกเครื่องหนึ่งก็ไม่ใช่เรื่องอยากอะไร แต่ถ้าหากว่าเราเป็นแค่ผู้เช่า hosting ธรรมดารายหนึ่ง ไม่มีเงินพอที่จะไปซื้อ server ไปว่างที่ ISP เองก็คงจะอยากที่จะทำการ backup ข้อมูล ถึงแม้ว่า hosting หลายรายเขาจะบอกว่าเขาทำการ backup ข้อมูลให้เรา ทุกๆวันก็ตาม ผมก็ยังไม่ใว้ใจอยู่ดี</p>
<p>วันนี้ผมจะมาแนะนำ การทำการ backup ข้อมูลของ MySQL ไปเก็บไว้ที่ gmail โดยจะทำการตั้งเวลาการ backup โดยใช้ crontab ผ่านทาง controlpanel ของ PLESK (ถ้าหากว่าใครใช้ controlpanel ตัวอื่นก็ไปหาวิธีการตั้ง crontab เอาเองนะครับ) โดยจะตั้งให้ทำการ backup database MySQL ในเวลา เวลา 24.00 น.  ของทุกๆวัน</p>
<p>บทความนี้ ผมไม่ลงลึกถึงรายละเอียดของตัวโปรแกรมนะครับว่ามีหลักการทำงานยังไง แต่จะบอกแค่ว่า ต้องเปลี่ยนตัวค่าของตัวแปร ตรงไหน แค่นั้น เพราะลงลึงไม่ได้เดี่ยวจะยาวกว่านี้</p>
<p>มาเริ่มกันเลย อย่างแรก download <a href="/download/sql2gmail.zip">sql2gmail.zip</a> ไปก่อนนะครับ จากนั้น unzip จะได้ออกมา 7 file ดังนี้<br />
1. check_php_path.php // ใช้หา path ของ PHP ว่าอยู่ที่ path อะไร<br />
2. class.phpmailer.php // เป็น class ที่ใช้ส่ง email มีคนเขียนไว้แล้วฟรีด้วย และแนบ file ได้ด้วย หรือใคร อยากจะเขียน code ที่ใช้ส่ง email แล้วแนบ file ได้ด้วยก็เอาเลยครับ<br />
3. class.smtp.php<br />
4. class.export.mysql.php // ตัวนี้เป็น function ที่ใช้ export ข้อมูลใน MySQL ออกมาเป็นคำสั่งของ SQL (เขียนเอง)<br />
5. sql2gmail.php // ตัวนี้เป็นโปรแกรมที่จะส่ง email พร้อมแนบ file ที่เรา export จาก MySQL ไปที่ gmail<br />
6. mysql.sql // เป็น file ที่เราจะเก็บข้อมูลที่ใช้ในการ backup<br />
7. run.php // เป็น file ที่เราจะสั่งให้ crontab เข้ามา run เพื่อจะทำการ run sql2gmail.php อีกทีหนึง</p>
<p><strong>เพิ่มเติม</strong> ที่จริงเราสามารถสั่งให้ crontab run sql2gmail.php ได้โดยตรงโดยไม่ต้องผ่าน run.php ก็ได้ในบาง server นะครับ แต่ server ของผมได้ทำการป้องกันการเข้าใช้งาน folder ของระบบเอาไว้ทำให้ไม่สามารถเรียกใช้งานได้โดยตรงต้องทำการ run ผ่านโปรแกรมอีกตัวหนึ่งก่อน</p>
<p>ต่อไปทำการ up file check_php_path.php ขึ้นไปที่ server จากนั้นทำการเรียก file check_php_path.php จะได้ข้อมูลออกมา แบบนี้</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">Server Time : 2005-08-28 09:18:33
Server Path : /usr/local/psa/home/vhosts/yourdomain.com/httpdocs/sql2gmail/check_php_path.php
PHP Path : #!/usr/local/bin/php</pre></td></tr></table></div>

<p>ถ้าหากว่าค่าของ PHP Path ไม่ออกมาก็ต้องมาเด่ากันละครับว่าเขาลง php ไว้ที่ไหน แต่โดยทั่วไปก็จะอยู่ที่ /usr/local/bin/php หรือไม่ก็ที่ /usr/bin/php เพราะเราจำเป็นต้องรู้ path ที่ใช้ลง php ในการ run โปรแกรม</p>
<p>จาก นั้นทำการเปิด file run.php ขึ้นมา และทำการเปลี่ยน path ของ php ในบรรทัดแรกให้เป็นค่าที่เราได้จากขั้นตอนที่แล้ว และทำการเปลี่ยน path ของ sql2gmail.php เป็น URL ที่เราจะทำการ upload file ขึ้นไป</p>
<p><strong>run.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">#!/usr/local/bin/php
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://www.yourdomain.com/sql2gmail/sql2gmail.php&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">feof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fgets</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4096</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$buffer</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>จากนั้นทำการเปิด file sql2gmail.php เพื่อทำการแก้ไข ค่าต่างๆ ดังนี้</p>
<p><strong>sql2gmail.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/*****************************************************************
File: sql2gmail.php
Description: ทำการ Backup SQL ไปที่ gmail
Created:  8/21/2005
Author: Error code 1
E-mail : khwanchai@gmail.com
Website : www.unzeen.com
Copyright (C) 2005, www.unzeen.com all rights reserved.
*****************************************************************/</span>
<span style="color: #b1b100;">require</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;class.phpmailer.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">require</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;class.export.mysql.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$dbname</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;database&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// ชื่อ database ของคุณ</span>
<span style="color: #000088;">$dbuser</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;root&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// username database ของคุณ</span>
<span style="color: #000088;">$dbpass</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// password database ของคุณ</span>
<span style="color: #000088;">$dbhost</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;localhost&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$filename</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;mysql.sql&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dbhost</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbuser</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbpass</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dbname</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filename</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'w'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;-- Created :  &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y-m-d H:i:s&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//$table = list_table($dbname); // ใช้ตัวนี้หากว่าต้องการ backup ทั้ง database</span>
<span style="color: #000088;">$table</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;table1&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;table2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// ใช้ตัวนี้หากต้องการเลือก table เอง</span>
&nbsp;
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span>count<span style="color: #009900;">&#40;</span><span style="color: #000088;">$table</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 <span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filename</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #339933;">,</span>export_db<span style="color: #009900;">&#40;</span><span style="color: #000088;">$table</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$mail</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PHPMailer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">IsSMTP</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Host</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;localhost&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CharSet</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;iso-8859-11&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddReplyTo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;webmaster@yourdomain.com&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Webmaster&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">From</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;webmaster@yourdomain.com&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// ชื่อ email ที่จะใช้ส่ง</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FromName</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Webmaster&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddAddress</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yourname@gmail.com&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// e-mail ของคุณที่จะใช้รับ file backup</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">IsHTML</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Subject</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;MySQL Backup &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y-m-d H:i:s&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Body</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;MySQL Backup &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y-m-d H:i:s&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddAttachment</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filename</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filename</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Send</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;Yes&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;No&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>ต่อไปก็ทำการ upload ทุก file ขึ้นไปที่ server ได้เลยครับ และทำการ เปลี่ยน permission ของ mysql.sql เป็น 777 เพื่อให้โปรแกรมของเราทำการเขียนข้อมูลลงไปได้ และทำการเปลี่ยน permission ของ sql2gmail.php และ run.php ให้เป็น 755 จะได้ทำการ run ผ่าน command line ได้</p>
<p>จากนั้นก็มาทดสอบโปรแกรมกันเลย ให้ทำการเรียกโปรแกรม sql2gmail.php ผ่านทาง webbrowser ถ้าได้ค่ากลับมาเป็น Yes ก็ แสดงว่าโปรแกรมของเราได้ทำการส่ง backup database ไปที่ email ที่เรากำหนดไว้แล้ว แต่ถ้าค่าที่ได้เป็น No ก็แสดงว่าส่ง email ออกไปไม่ได้ อาจจะเป็นจากตัว file backup ที่จะให้ส่งออกไปมีขนาดใหญ่เกินไป ให้คุณลองทำการเลือก table ที่มีขนาดเล็กๆ ก่อนว่าได้หรือเปล่า</p>
<p>จากนั้นลองไปเช็คดูที่ email ว่ามีข้อมูลถูกส่งไปหรือยัง ถ้าหากว่าไม่มีอะไรผิดพลาดก็ทำขั้นตอนต่อไปได้เลย</p>
<p>ต่อไปก็มาถึงขั้นตอนการกำหนด crontab กันแล้ว ให้ทำการ login เข้าไปที่ controlpanel ของ PLESK ที่ทาง hosting ให้เรามา</p>
<p><img src="/wp-content/uploads/2008/06/backup_sql_01.jpg" alt="" title="" /></p>
<p>ทำการ Login เข้า PLESK Controlpanel</p>
<p><img src="/wp-content/uploads/2008/06/backup_sql_02.jpg" alt="" title="" /></p>
<p>ทำการ click ที่ Crontab Manager</p>
<p><img src="/wp-content/uploads/2008/06/backup_sql_03.jpg" alt="" title="" /></p>
<p>ทำการ click ที่ Add เพื่อเพิ่ม crontab </p>
<p><img src="/wp-content/uploads/2008/06/backup_sql_04.jpg" alt="" title="" /></p>
<p>กำหนดค่าเวลาที่ต้องการให้โปรแกรมทำงานลงไป ในตัวอย่างคือ เวลา 24.00 น. ของทุกวัน และในช่อง command ให้กำหนดเป็น path ของโปรแกรม run.php ลงไป โดยต้องกำหนดเป็น path เต็มของ server ซึ่งสามารถดู path ของ server ได้จาก โปรแกรม check_php_path.php ซึ่งจากตัวอย่างนี้ก็ คือ Server Path ที่ได้คือ /usr/local/psa/home/vhosts/yourdomain.com/httpdocs/sql2gmail/check_php_path.php</p>
<p>ฉะนั้น Path ของ run.php ของเราก็จะเป็น usr/local/psa/home/vhosts/yourdomain.com/httpdocs/sql2gmail/run.php<br />
เมื่อกำหนดค่าต่างๆ แล้วให้ทำการ click ที่ update</p>
<p><img src="/wp-content/uploads/2008/06/backup_sql_05.jpg" alt="" title="" /></p>
<p>ส่วนในช่อง Send crontab messages to address: ให้กำหนดเป็น email address ของเราเพราะว่าเวลาที่ crontab ทำงานจะได้มีข้อมูล ส่งไปหาเราด้วยว่า โปรแกรมทำงานถูกต้องหรือยัง หรือว่ามี error ที่ตรงไหน แต่ถ้าหากว่าแน่ใจแล้วก็ไม่ต้องใส่ก็ได้ ครับ</p>
<p>และ ต่อไปเราก็ไม่ต้องห่วงเรื่องการ backup ข้อมูลใน database ที่สำคัญของเราแล้ว เพราะว่าเรามีโปรแกรม backup ข้อมูลที่ทำงาน ทุกๆ วันอยู่แล้ว</p>
<p>อีกนิดหนึง อย่าลืมไปลบข้อมูล file backup เก่าๆใน email ออกด้วยนะครับเดี่ยว email จะเต็มโดยไม่รู้ตัว</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unzeen.com/archives/129/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เขียนโปรแกรม downloads ไว้ใช้เองหน่อยไหม</title>
		<link>http://www.unzeen.com/archives/128</link>
		<comments>http://www.unzeen.com/archives/128#comments</comments>
		<pubDate>Sun, 24 Jul 2005 12:21:38 +0000</pubDate>
		<dc:creator>LookHin</dc:creator>
				<category><![CDATA[All Categories]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">/?p=128</guid>
		<description><![CDATA[ในการทำ website ถ้าหากว่าเรามีข้อมูลที่ต้องการให้ download อย่างเช่น file .pdf หรือ file .doc เราสามารถทำการสร้าง link ไปที่ file เหล่านั้นได้โดยตรง แต่ว่าเราจะไม่สามารถทำการ ตรวจสอบได้เลยว่า file ไหนถูก download ไปเท่าไรแล้ว และยิ่งกว่านั้นหากว่าเป็น file พวก .pdf ด้วยแล้ว browser อาจจะไม่ขึ้นหน้าต่างให้ save แต่จะเปิด pdf ให้ที่หน้า browser เลยก็ได้ ซึ่งหากว่าเป็นผู้ที่ใช้ internet หน้าใหม่ด้วยแล้วอาจจะหยุดหงิดได้ง่ายๆ และผู้ใช้ยังเห็นด้วยว่าเราเก็บ file ไว้ที่ folder อะไร

วันนี้เราจะมาหัดเขียนโปรแกรม download ที่สามารถเช็คได้ว่า file ไหนถูก download ไปเท่าไรแล้ว และในการ download แต่ละครั้ง เราก็จะกำหนดให้ผู้ใช้ทำการ download และ save [...]]]></description>
			<content:encoded><![CDATA[<p>ในการทำ website ถ้าหากว่าเรามีข้อมูลที่ต้องการให้ download อย่างเช่น file .pdf หรือ file .doc เราสามารถทำการสร้าง link ไปที่ file เหล่านั้นได้โดยตรง แต่ว่าเราจะไม่สามารถทำการ ตรวจสอบได้เลยว่า file ไหนถูก download ไปเท่าไรแล้ว และยิ่งกว่านั้นหากว่าเป็น file พวก .pdf ด้วยแล้ว browser อาจจะไม่ขึ้นหน้าต่างให้ save แต่จะเปิด pdf ให้ที่หน้า browser เลยก็ได้ ซึ่งหากว่าเป็นผู้ที่ใช้ internet หน้าใหม่ด้วยแล้วอาจจะหยุดหงิดได้ง่ายๆ และผู้ใช้ยังเห็นด้วยว่าเราเก็บ file ไว้ที่ folder อะไร<br />
<span id="more-128"></span><br />
วันนี้เราจะมาหัดเขียนโปรแกรม download ที่สามารถเช็คได้ว่า file ไหนถูก download ไปเท่าไรแล้ว และในการ download แต่ละครั้ง เราก็จะกำหนดให้ผู้ใช้ทำการ download และ save ลงเครื่องก่อนเท่านั้น และวิธีการนี้ผู้ที่ทำการ download เองก็จะไม่ทราบด้วยว่าเราเก็บ file จริงๆ ไว้ที่ folder อะไร ของ server</p>
<p>มาดูวิธีการกันเลย</p>
<p>ใน ตัวอย่างต่อไปนี้เราจะกำหนดให้ file ที่จะให้ download อยู่ใน folder /downloads/ โดย file ที่ผมจะทำการทดทองจะชื่อ test.html ซึ่งเป็น file HTML ธรรมดา ซึ่งภายใน file test.html มีข้อมูลดังนี้</p>
<p><strong>test.html</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>HTML<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>HEAD<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>TITLE<span style="color: #339933;">&gt;</span> Test Download <span style="color: #339933;">&lt;/</span>TITLE<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>HEAD<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>BODY<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Test Download<span style="color: #339933;">&lt;/</span>h2<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>BODY<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>HTML<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>ที่ผมเลือกทดสอบกับ file .html ก็เพื่อจะแสดงให้เห็นว่าการทำเป็น link ธรรมดากับการที่เราจะทำโปรแกรมเพื่อทำการ download มันต่างกัน จริงๆ และตัว file .html ก็เป็นตัวอย่างที่ดี เพราะว่าเวลาเราเรียก test.html ขึ้นมาตรงๆ ก็จะเป็นการเปิดหน้านั้นขึ้นมาที่ browser เลย ไม่สามารถที่จะ save ได้ (ยกเว้นว่า ผู้ใช้จะไปกด save จาก menu ของ browser อีกที)</p>
<p>ทีนี้มาดูกันว่า หากว่าเป็นวิธีการปกติที่เราใช้กันเราก็จะเขียน code html เพื่อ link ไปยัง file test.html นั้นเลย แบบนี้</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;./downloads/test.html&quot;</span><span style="color: #339933;">&gt;</span>Download<span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>ซึ่งจากตัวอย่างเมื่อเราทำการ คลิกที่ link ก็จะเป็นการเปิดหน้า test.html ขึ้นมา และผู้ใช้ก็ยังเห็นด้วย ว่าเราเก็บ file test.html ไว้ที่ไหน</p>
<p>ต่อไปมาดูตัวอย่างโปรแกรม download กันดีกว่า</p>
<p><strong>download.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;..&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// ทำการ replace ตัว .. และตัว / ออกจากชื่อ file ที่จะทำการ download</span>
<span style="color: #666666; font-style: italic;">// เพราะว่าจะมีพวกมือบอลเข้ามา และพยายามจะ download file อื่นที่อยู่นอก folder ที่เรากำหนดไว้</span>
<span style="color: #666666; font-style: italic;">// อย่างเช่น เขาอาจจะใส่ว่า ../download.php เข้ามาอะไรแบบนี้ อันตรายจริงๆๆ ต้องระวัง</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_file</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;./downloads/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// ตรวจสอบอีกครั้งว่ามี file นี้อยู่จริงๆ</span>
&nbsp;
<span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;localhost&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;root&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;root&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test_download&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;INSERT INTO `download` ( `ID` , `FILE` , `DATE` ) VALUES ('', '<span style="color: #006699; font-weight: bold;">$file</span>',NOW())&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// ทำาการ insert ข้อมูลการ download ลง database โดยจะเก็บ ชื่อ file และเวลาที่เข้ามาทำการ download</span>
&nbsp;
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Description: File Transfer&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: application/force-download&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Disposition: attachment; filename=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">@</span><span style="color: #990000;">readfile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;./downloads/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// ระบุ folder ที่เก็บ file</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>เมื่อได้โปรแกรม download.php แล้วต่อไปเรามาลองเรียกใช้กันดูบ้าง โดยให้ทำการสร้าง link เพื่อ download file test.html ดังนี้</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;download.php?file=test.html&quot;</span><span style="color: #339933;">&gt;</span>Download<span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>จากนั้นก็ลอง คลิก Download ได้เลย</p>
<p><strong>คำแนะนำ </strong> อย่าพยายามนำ file download.php ไปไว้ใน folder เดี่ยวกันกับ file ที่ต้องการให้ download เพราะผู้ที่ download อาจจะทำการใส่ parameter เป็น file=download.php เข้ามาได้ ฉะนั้นระวังๆ เวลาเขียนโปรแกรมด้วยนะครับ ตรวจสอบ path อะไรต่างๆให้ดี และจากตัวอย่าง download.php ผมใส่ ./downloads ก็เพราะว่า โปรแกรม download.php ของผมอยู่ที่เดี่ยวกันกับ folder downloads<br />
แต่ถ้าหากว่าของคุณอยู่ใน folder ที่สูงกว่า download.php ขึ้นไปอีกก็ใช้เป็น ../downloads นะครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unzeen.com/archives/128/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
