ถึงพี่ Pig.Army ที่ผมค่อนข้างจะอิจฉาที่ท่านมีแฟนสาว...
พี่อย่าไปฟังความหยั่งรู้ดั่งปราชญ์ของชาวราชดำเนินเลยครับ
แถวนั่นเป็นนักปราชญ์ตั้งแต่กรณี รีทัชรูปในหลวงของไทยรัฐแล้วครับ ชาวราชดำเนินยืดอกบอกไม่ได้ตัดต่อมาแล้ว
http:manager.co.th/home/popupCenter('/Home/news1/astv120k.html',%20'News1',478,475);%20return%20false;
ตรงส่วนหลังสุดจะมี คำสั่ง 20return%20false;
<<< อย่างงี้เข้าให้ตายมันก็เข้าไม่ได้อะ [/quote]
ไปทีละอย่างนะ
ตรงแดงๆของพี่ Pig นั่น
ที่มันต้องมี %20 นั่นเขาเรียก
URL Encoding ... URL
ทำไมเราต้องมี Uniform Resource Locators(URL) Encoding ?
เพราะว่าเวลาเราส่ง สั่ง เรียกดู ข้อมูลแบบผ่านหน้า html page
(ยก 1 ตัวอย่างการสั่งงานก็คือการโพสต์ข้อมูลนั่นแหละ เหมือนเวลาพี่พิกไปโพสต์กู๊ดไนท์แฟนสาวใน hi5 นั่นแหละ)
การเรียกดูก็เข่นกัน
ต่อนะ ..
เพราะว่าเวลาเราส่งข้อมูลแบบผ่านหน้า html page เรามีข้อจำกัดในการใช้ตัวอักขระ (อักษรนั่นแหละ) เพราะว่าเราใช้รูปแบบตัวอักษร US-ASCII
เอาหลักๆของ กลุ่มตัวอักขระ US-ASCII นะ1.เริ่มจาก Alphanumerrcs ซึ่งก็มี 0-9 a-z A-Z
2.ตัวอักษรพิเศษก็มีอาทิเช่น $ - _ . + ! * ' ( ) , ไปไล่เอาเอง มีเยอะแยะ
(โดยพี่พิกอาจไม่ค่อยได้ใช้งานกลุ่มอักขระพิเศษ มากไปกว่าการไปเล่นลูกเล่นกะแฟนสาวในไฮไฟว์ แบบนี้ -*- ^_^)
แต่ปัญหาของเรื่องก็คือ
มาตรฐานของ html นั้นดันทะลึ่งไปใช้มรูปแบบาตรฐานอักขระ ISO-8859-1 ซึ่งไม่สามารถรับกับใตรฐานอักขระ US-ASCII ของพี่พิกได้ทั้งหมด และสิ่งที่สำคัญที่สุด...เพราะ US-ASCII ของพี่พิกนั้น มี Reserved characters และ Unsafe charecters ซึ่งเป็นอักขระที่ html ได้สงวนเอาไว้ ไม่ให้ใช้ เพราะมันไม่รับกับโครงสร้าง ซึ่งจะทำให้เพี้ยนหรือเจ๊งได้
ดังนั้น เวลาที่เราจำเป็นต้องใช้ Reserved charecters หรือ unsafe charecters โดยไม่ให้ ในการโพสต์ข้อมูลผ่าน html ซึ่งใช้มาตรฐาน ISO-8859-1 นั้น จึงจำเป็นต้องทำการแปลงซะก่อน
รูปแบบการแปลง
ตัวอย่างนะครับ นี่คือหลักการทำงานของการ Encoder นะครับเราจะยกตัวอย่างการส่งข้อความข้อมูลผ่าน html แล้วจะให้ผลลัพธ์ที่เราส่งนั้น แสดงผลด้วย
Pig.Army ^_^ Loves Nong Panทั้งหมด 27 อักขระมีอักษรปกติทั้งหมดกี่ตัวครับพี่พิก....
มีอักษรพิเศษทั้งหมดกี่ตัวครับพี่พิก....
มีคำสงวน (Reserved charecters)
มี
กี่ตัวครับพี่พิก
ตอบได้ให้ 5 คะแนน
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
แต่น แต๊นน!! ผิดหมดล่ะสิ
เฉลยนะครับ
มีอักษรปกติทั้งหมด 19 ตัว ซึ่งมี่ PigArmyLoveNongPan
มีอักขระพิเศษ 2 ตัว ซึ่งมี . _
และมีอักขระสงวนต้องห้ามอยู่ 2 ตัวครับ ซึ่งมี ^^มีอักขระไม่ปลอดภัยอยู่ 4 ตัว (มันคือมือที่มองไม่เห็น เอ้ย ตัวอักขระที่มองไม่เห็น ซึ่งก็คือการเคาะ space bar วรรคระหว่างคำนั่นแหละ ไม่ใช่แค่นี้ที่เป็น unsafe นะ มีพวกอักขระพิเศษแบบ } < # ด้วย เดี๋ยวจะให้ดูทีหลัง)ผมได้ข้ามตัวอักขระไม่ปลอดภัย (Unsafe) ไป ซึ่งมี พวก > < # } { อะไรทำนองนี้
ซึ่งผมจะเอาไปรวมกับอักขระสงวน (Reserved charecters) เลยก็แล้วกัน เพราะมันต้องแปลงทั้งคู่
ทีนี้มาดูการทำงาน ซึ่งผมเต็มใจทำแผนภาพการทำงานของ URL Encoding มาให้ พี่พิกโดยเฉพาะเลยนะครับ
ถ้าไม่อ่านของผม ผมเสียใจแย่เลย

พี่พิกเห็นมั้ยครับ ไอ้พวกตัวคะยึกคะยือ %20%7E%20 อะไรนั่นน่ะ
คือสิ่งที่ URL Encoder ได้แปลงเป็นเลขฐานสิบหก หรือ HEX นั่นเอง
และเมื่อเวลาจะแสดงผลในรูปแบบของ US-ASCII ซึ่งเป็นมาตรฐานที่เราใช้กันนั้น
มันจะทำการแปลงค่าจากเลขฐานสิบหกเอง ให้เป็นฐานสิบเอง
Reserved charecters และ Unsafe charecters ที่จำเป็นต้องทำการ Encode
ผมเอาตารางมาให้พร้อมเหตุผลนะครับ


ทีนี้ก็มาดูเรื่องเจ้าปัญหากัน อธิบายซะครึ่งโลก มาตอบปัญหาปัญญาอ่อนนี่
http:manager.co.th/home/popupCenter('/Home/news1/astv120k.html',%20'News1',478,475);%20return%20false;
เมื่อแปลงกลับมา มันก็จะเป็น
จริงๆมันก็ไม่มีอะไรเลย
ก็แค่ลิ้งค์ที่พิเศษนิดๆ ก็คือเมื่อกดคลิ๊กเข้าไปแล้ว มันจะบีบเบราซ์เซอร์ให้ได้ขนาดพอดีพอเหมาะกับสิ่งที่จะนำเสนอ โดยใช้ Java Script เข้าช่วย ซึ่งมันเป็นอีกหนึ่งภาษาที่ใช้ทำงานบนเว็บ ใช้เขียนชุดคำสั่งให้คอนโทรลการทำงานในส่วนฝั่งของ user (ฝั่งเรานั่นแหละ ไม่ใช่ฝั่ง server) โดยทางเว็บไซต์ ผู้จัดการ ได้ใช้ในส่วนของ Java Pop-up Form ซึ่งเราจะมาดูกัน
มาดูกัน
Fuction Parameter ของสคริป popupCenter() มาเรียนรู้เท่าที่มันใช้ให้เราเห็นก็แล้วกัน ซึ่งของจริง ต้องมีมากกว่านี้แน่นอนครับ popupCenter('ลิ้งค์ไปยังสิ่งที่ต้องการจะให้แสดงพร้อมเพจใหม่','ชื่อฟอร์ม','ตวามกว้าง','ความยาว') returm = (true/false)
ก่อนจะใช้ฟังก์ชั่นนี้ได้ จำเป็นจะต้องให้หน้าเพจดังกล่าวนั้น ทำการ Initialize ฟังก์ชั่น popupCenter() เสียก่อน (ภาษาชาวบ้านก็ให้เว็บนั่นมันโหลดทุกอย่างให้ครบก่อนนั่นแหละ ตัวฟังก์ชั่นที่ซ่อนอยู่ มันอยู่หน้าหลักของเว็บนั่นแหละ)
สิ่งที่พิกอาร์มมี่ และพวกพ้องทำก็คือ เล่นแร่แปรธาตุ ตัดต่อ URL นี้ให้ไม่สมประกอบ แล้วมาโวว่าเว็บนั้นมันบล็อกมั่ง มันทำอย่างนั้นอย่างนี้มั่ง โง่แล้วอวดฉลาดกัน
ถือเป็นการโชว์โง่แม้กระทั่งโปรแกรมเมอร์หัวอ่อนๆ จบใหม่ๆยังรู้ว่าดูออกว่าโชว์โง่ หลอกได้แต่ควายในราชดำเนินที่โง่ๆ
เล่นตัดเอาลิ้งค์มา แล้วมันติดฟังก์ชั่น popupCenter() มาด้วย ไม่ได้ดึง ขาดตัวคอนโทรลเหตุการณ์ OnClick ที่ให้ฟังก์ชั่นทำงานด้วย
มันจะไปใช้ได้ยังไง ในเมื่อตัวคอนโทรลฟังก์ชั่นมันไม่ได้ถูกโหลดเข้ามาด้วย
และเมื่อ Pig.Army ก็ได้ตัดฟังก์ชั่น popupCenter() ออกแล้วมันก็ใช้ได้
และถ้า พิกอาร์มมี่ มี common sense บ้าง ก็น่าจะรู้อยู่แล้ว ว่ามันไม่ได้บล็อกแน่ๆ มันจะบล็อก ASTV ของมันทำไม มันยิ่งอยากให้คนดูของมัน
เอาล่ะ มาดูฟังก์ขั่นที่มันไม่ได้ initialize เข้าระบบกัน (เพราะมันไม่ได้โหลดหน้าหลัก มันจะมาได้ยังไง)
นี่ souce html code ของเว็บผู้จัดการ ในส่วนของการ initialize (เข้าเว็บผู้จัดการ แล้วคลิกขวาตรงเพจ แล้วเลือก View source)
ดูแค่ 10 แถวบนสุดก็พอ
<html>
<head>
<base target="_blank">
<title>Manager Online</title>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<META NAME="ROBOTS" CONTENT="NOARCHIVE">
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<link rel="stylesheet" title="Mocked" href="/css/css.css" type="text/css" disable>
<link rel="stylesheet" title="Mocked" href="/css/contentslider.css" type="text/css" disable>
[color=red]<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/Common.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/Cookies.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/Style.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/Member.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/Menu.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/Tab.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/TabMain.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/ListWebboard.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/Image.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/Contentslider.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/JavaScript/AC_RunActiveContent.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
InitStyle();
</SCRIPT>[/color]
มีเป็นร้อยๆ ฟังก์ชั่น ในแต่ละไฟล์ ซึ่งสังเกตุได้จากนามสกุล .js
แต่ละไฟล์แบ่งฟังก์ชั่นในการคอนโทรลในส่วนของเว็บแตกต่างกันไป ดังที่เราเห็น ไม่ว่าจะเป็น member.js ,image.js
แน่นอน ไฟล์ที่มีฟังก์ชั่นคอนโทรลตัว pupupCenter() ก็อยู่ในนั้น
ในเมื่อเรารู้ว่าไฟล์ไหน ควบคุมการทำงานของ popupCenter() เราก็เรียกแม่งมาทั้งหมดเลยละกัน โดยสั่งดึงสคริปคอนโทรลจากเว็บผู้จัดการมาใช้เลย ไม่ต้องก็อบมา โดยระบุไปเลย ตัวอย่างสีแดงๆอ่ะ
เราจำเป็นต้องแก้ เพราะของเดิมมันเป็นแบบนี้
<SCRIPT LANGUAGE="JavaScript" [color=red]SRC="/JavaScript/Cookies.js"[/color]></SCRIPT>
เขาไม่ต้องระบุชื่อเว็บเหมือนเราก็เพราะว่า เขาเรียกสคริปจากเครื่องเขาเอง
แต่เรามันดูดจากเขามาใช้
<SCRIPT LANGUAGE="JavaScript" SRC="[color=red]http://www.manager.co.thJavaScript/Common.js"></SCRIPT>[/color]/
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/Cookies.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/Style.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/Member.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/Menu.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/Tab.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/TabMain.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/ListWebboard.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/Image.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/Contentslider.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.manager.co.th/JavaScript/AC_RunActiveContent.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
InitStyle();
</SCRIPT>
ทีนี้ลิ้งค์ก็จะใช้ได้แล้ว เพราะมันมีตัวคอนโทรล ทำให้ฟังก์ชั่น popupCenter() ใช้งานได้เสียที
<a href="http://www.manager.co.th/Home/news1/astv120.html" onclick="popupCenter('http://www.manager.co.th/Home/news1/astv120.html', 'News1',478,496); return false;"><img src="http://www.manager.co.th/images/11news1.gif" width="115" height="39" vspace="2" border="0"></a>
</html>
ทีนี้ก็เสร็จแล้วไปชมกันได้อย่าลืมคลิแขวาที่เพจเพื่อดู code ด้วยละกันครับ จะได้รู้ ว่ามันต้องทำแบบนี้
http://www.geocities.com/jackubonratchathani/pigarmy_bullshit.htmlผมเอาไฟล์ไปฝากไว้ที่โอสต์ของ yahoo geocities
มันมีปัญหากับสคริปนิดๆเหมือนกันครับ
คือมันเปิดทั้ง opoup ใหม่ มันยังเรียกไฟล์ลิ้งค์จาก manager ทั้งคู่
ของฟรีก็งี้ ไม่รู้มันบล็อกสคริปอะไรไว้
แบบนี้ไม่มีปัญหาครับ
โหลดไฟล์ html ไปเปิดดูที่เครื่องเราเลย
http://www.tempf.com/getfile.php?filekey=1207371078.84091_pigarmy_bullshit.html&mime=text/htmlพอกดเปิดไฟล์ pigarmy_bullshit.html ปุ๊บ
Intermet Explorer จะกันไฟล์ไว้
ให้เรากด allow ให้มันเปิด แค่นั้นก็ใช้ได้แล้วครับ
ส่วนพี่พิก และพวกพ้อง อาจไปเอาเรื่องมาเล่ามาด้วยความรู้เท่าไม่ถึงการก็ได้นะ ผมพยายามจะคิดอย่างนั้น เพราะพวกพี่ถ้ารู้เรื่องจริง กระทู้เฮงซวยไร้สาระนี้คงไม่มี
ใช้เวลาร่วมสามชั่วโมงในการให้แสงสว่างคน
แต่เอาเถอะ
คิดซะว่าเป็นกุศล
