\

Facebook


วันพุธที่ 23 พฤศจิกายน พ.ศ. 2559

Debug PHP Code ด้วย VS Code 2016 ของฟรีและดีงามจาก Microsoft


หากคุณเป็นนักพัฒนาภาษา C# หนึ่งในโปรแกรม Editor ที่มีความสามารถสูงในท้องตลาดและคุณต้องไม่พลาดแน่นอนคือ Visual Studio แต่ในสมัยก่อนเราต้องจ่ายค่าไลเซนต์ VS เพื่อดาว์นโหลดลงมาใช้งาน ดังนั้นนักเรียน นักศึกษา นักพัฒนา จะไม่ค่อยมีโอกาสได้ใช้มากนัก(ถ้าไม่มีตัวแคร็ก) หลังจากนั้น Microsoft ก็ออกตัว VS Express มาให้ใช้ฟรี เเต่มันก็ยังมีปัญหาเรื่องความหนักของโปรแกรมอยู่ดี และชาว Open source ก็ไม่ได้ใช้ประโยชน์มากนัก ดังนั้นการปล่อย VS Code ออกมาถือว่าเป็นการตอบโจทย์ และดึงกลุ่ม Open Source ให้เข้ามาใช้เครื่องมือของ Microsoft มากขึ้น

โหลดก่อนเลย!
คุณสามารถดาว์วโหลด VS Code ลงมาใช้งานได้ฟรี ที่หน้าหลัก Microsoft ลิงค์นี้
https://code.visualstudio.com
แล้ว install กด Next เรื่อยจน install เสร็จสิ้น

การ Config PHP Debugger
ก่อนอื่นเช็คไฟล์ php.ini กันสักนิดว่าพร้อมสำหรับ Debug หรือยัง โดยผมใช้ XDebug เข้าไปตั้งค่าตามนี้
XAMPP Stack :

1. แก้ไฟล์ c:/xampp/php/php.ini ถ้ายังไม่มีโค๊ดข้างล่าง ให้เพิ่มดังนี้

[XDebug]
zend_extension="C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_host=localhost
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_port=9000
xdebug.remote_autostart = 1


2. เช็คดูว่าไฟล์ php_xdebug.dll อยู่ที่ directory ที่คุณลง xampp จริง
3. ตั้งค่า port 9000
4. ตั้งค่า xdebug.remote_enable เป็น 1


การ Config VS Code ให้มี PHP Debugger
1. เข้า command palette ไปที่ view > command palette หรือ ctrl + shift + p
2. พิมพ์ ext install
3. ค้นคำว่า php debug
4. กด install แล้ว restart VS Code ใหม่
5. ไปที่ file > preferrence > user settings ใส่ค่านี้ลงไปข้างใน  ปีกกา {}

"php.validate.executablePath": "C:/xampp/php/php.exe"


มาเริ่ม Debug กัน
1. เปิด project test ขึ้นมา โดยคลิกรูปกระดาษสองแผ่นที่เมนูด้าานซ้าย
2. เปิด debug mode โดยเลือกที่รูปแมลงด้านซ้าย
3. คลิกปุ่มฟังเฟืองเพื่อ setting เเล้วเลือ PHP สังเกตว่า port เป็น 9000 แล้ว save
4. run ปุ่มสามเหลื่ยมเขียวๆ
5. เข้า browser เเล้วไปที่ project test : localhost/test/test.php

อันนี้ ไฟล์ test.php ของผม

<?php
echo "test page for vs code + PHP";
$test = 1;
$testArray = array('test1', 'test2');
foreach ($testArray as $key => $value) {
    echo $value.'<br/>';
}
?>

6. ทำ break point ไว้เพียงเท่านี้ code ของท่านก็สามารถ watch ค่าตัวแปรได้เเล้ว ดังรูป

เป็นอันจบครับ Open Source จงเจริญ!

วันพุธที่ 10 สิงหาคม พ.ศ. 2559

เล่น Pokemon Go บนคอม วิ่งในเกมส์ 10 km แบบไม่ต้องลุกจากที่นั่ง !!


***เพิ่มเติม : ปัจจุบันผมเลิกเล่นผ่าน emulator เเล้วนะครับ บทความนี้กลายเป็นอดีตไปละ เพราะความสนุกจริงๆคือการเดินเล่น เเละพบปะผู้คนจริงๆ ไปละวันนี้ EXP คูณสอง


กระแสแรงจริงๆกับ Poemon Go หลังจากเปิดตัวในประเทศไทยเมื่อสัปดาห์ที่แล้ว ตอนนี้ไม่ว่าจะเดินไปทางไหนก็เจอเหล่าโปเกมอนมาสเตอร์ ไล่จับโปเกมอนกันทุกหย่อมหญ้า ผมก็หนึ่งในนั้นแต่เล่นบนมือถือไม่ถนัดจริงๆ เลยเล่นบนคอมแทนครับ




STEP 1  : Download bluestacks2 Native 5 ได้ทั้งเว่อชั่นภาษาไทยหรือภาษาอังกฤษ
http://www.bluestacks.com/ ล่าสุดเวอร์ชั่นปัจจุบัน แถม FakeGPS มาให้เลยทันที

STEP 2 : Download KingRoot แล้วจัดการ Root BlueStack ซะ

STEP 3 : ถ้าโหลดมาเเล้วไม่มี Fake GPS มาให้ ก็ต้องลงเองครับ (ถ้ามีแล้วข้ามไป step 5) โหลด Lucky Patcher จากตรงนี้ คลิกไอคอน apk จากเมนูทางซ้าย เลือกไฟล์ LuckyPatcher.apk รอจน install สำเร็จ กดไอคอนฟันเฟืองมุมขวาบน > Updaate Android Plugin รอจนกว่าจะเสร็จ

STEP 4 : เปิด Lucky Patcher ขึ้นมากด add/install ที่เมนูข้างล่าง เลือก SD card >  windows > BlueStackFile > FakeGps.apk หลัง install เสร็จถ้ามันถามว่าจะ restart ไหม ไม่ต้องตอบ กดไอคอนฟันเฟืองมุมขวาบน > Updaate Android Plugin รอจนกว่าจะเสร็จ

STEP 5 : ไปที่ start > search > ค้นคำว่า privacy location กด change > เลือก off ให้หมดทั้ง 2 ตัว

STEP 6 : cmd > regedit > LOCAlMechine > software > bluestack > camera เลือก decimal เเล้สใส่ค่า 0 ลงไป

STEP 7 : กลับมาที่ BlueStack กด setting > location > google location history ถ้าเข้าไม่ได้ เเสดงว่ามาถูกทางเเล้ว เปิด fake gps เเล้วทดลอง ค้นคำว่า "BTS เอกมัย" pin มันตรงนั้นแหละ เเล้วกด ลูกศรสีส้มด้านล่าง ถ้า windows 10 ฟ้องมาว่ามีการ update locaiton แสดงว่าสำเร็จไป 90% เเล้ว

STEP 8 : ลง Pokemon Go โลด ปล. อย่าลืมไป add google account ก่อนเล่น หลังจาก login เข้าตัวเกมส์สำเร็จเปิด locaton ที่ไอคอนหมุดทางซ้ายยมือ เลือกตำแหนงตามใจชอบ กด faorite ตรงจุดนั้นไว้ก็ได้ เเล้วกดปุ่มส้ม กลับมาใน pokemon go แผนที่จะขึ้นแล้ว เล่นได้เลย

STEP 9 : สนุกกับเกมส์

*** ถ้า pokemon ไม่เกิด คุณเดินไวไป เปลี่ยนตำแหน่งไกลเกิน ออกเกมส์เข้าใหม่ / รอ

*** ตอนจับ pokemon ให้ปิด AR mode 

*** ถ้ากด wasd เพื่อเดินไม่ได้ ให้pin ตำแหน่งอีกที เเล้วกดไอคอนฟันเฟืองมุมขวาบน > Updaate Android Plugin รอจนกว่าจะเสร็จ

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

วันอาทิตย์ที่ 20 ธันวาคม พ.ศ. 2558

แก้ HOSTS ไฟล์ เพื่อบล็อกเว็บไม่เหมาะสม

ขออธิบายความรู้ domain name เกริ่นนิดหน่อยก่อนนะครับ ในการเข้าเว็บไซด์เเต่ละครั้ง(หลังจากพิมพ์ URL แล้วกดปุ่ม Enter) เราจะวิ้งไปที่ name server หลักของเเต่ละโซนแต่ละประเทศเพื่อไปแปลงจากชื่อโดเมนเป็นเลข IP Address เพื่อให้คอมพิวเตอร์เข้าใจ เช่น google --> 203.146.98.27 

แล้วถ้าเราใช้โดเมนเเค่ในองค์กรเพียงอย่างเดียวหล่ะ ไม่จำเป็นต้องไปจดโดเมนเนมให้เสียตัง เสียเวลา เพราะเราสามารถแก้ไป host ไฟล์บนเครื่อง PC ของเราเองสำหรับจำลองชื่อโดเมนได้ตามใจ เช่น http://localhost ให้วิ่งไปที่เว็บหลักของบริษัท ซึ่งเราสามารถสร้างชื่อที่จำง่ายๆ ไม่ยาว เช่น http://test , http://account , http://HR เป็นต้น

เริ่มกันเลย เรียก RUN ขึ้นมาเเล้วพิมพ์ "notepad C:\Windows\System32\Drivers\etc\hosts"

เมื่อเปิดไฟล์ขึ้นมาจะได้หน้าตา ประมาณนี้ครับ
  
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least 

one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1       localhost
# ::1             localhost
  
ให้ต่อท้ายบรรทัด โดยเพิ่ม ip addres ตามด้วย tab แล้วพิมพ์ชื่อ โดเมนที่ชอบลงไปเช่น

203.146.98.27 googl  --> (เป็น short link สำหรับเข้า Google เร็วๆ)

หลังจากนั้นกด save ไฟล์เเล้วไปที่หน้า Browser แล้วทดลองพิมพ์ http://googl/ แล้วจะพบว่าโดเมนนี้สามารถวิ่งตรงไปยังกูเกิ้ลได้สะบายๆ

ประยุคมาใช้ Block เว็บที่ไม่ต้องการ โดยการหลอกให้เว็บที่ไม่ต้องการวิ่งเข้า loopback ip ซึ่งไม่มีอยู่จริง ถ้าเข้าไปจะพบว่าไม่พบหน้าเว็บหรือ 404 not found สมมุติผมอยาก block เว็บ yahoo ก็เพิ่มบรรทัดนี้ลงไปที่ท้ายสุดของไฟล์

127.0.0.1    www.yahoo.com

เพียงเท่านี้ เว็บ Yahoo ก็ไม่สามารถเข้าได้อีกต่อไป ไปลองทำดูกันครับ บาย
สุดท้ายอย่าลืม backup ก่อนเเก้นะครับ แล้วจะหาว่าไม่เตือน

วันพุธที่ 7 ตุลาคม พ.ศ. 2558

จัดระเบียบ SQL Query ให้อ่านง่ายๆสบายตา DEV ด้วย ApexSQL



สำหรับท่านที่ต้องใช้งาน MSSMS อยู่เป็นประจำน่าจะเจอปัญหาคล้ายๆกับผมคือ "เวลาแก้ store procedure จะเจอกับโค๊ดเทพที่ยุ่งเหยิง วุ่นวาย ไม่ได้ใส่ UPPER CASE บ้าง ย่อหน้าอ่านยากบ้าง" ซึ่งมันบั่นทอนกำลังให้การแก้เป็นอย่างมาก วันนี้ผมมาแนะนำ Free Plugin ที่จะทำให้โค๊ดอ่านง่ายยิ่งขึ้น ลุยเลย

ไปโหลดปลั้กอินจากหน้า https://www.apexsql.com/Download.aspx แล้วเลือกตัว ApexSQL Refactor  ซึ่งเป็น Free Tool ให้โหลดฟรีไม่คิดค่าใช้จ่าย จากนั้น Install ให้สมบูรณ์แล้ว restart MSSMS อีกครั้งหนึ่ง จะเห็นเมนูเพิ่มขึ้นมาที่มุมซ้ายบน


มีอยู่ 4 เมนูให้เลือกคือ

- Default 
- Compact
- Extended
- MSDN SQL BOL ถ้าชอบเดียวกับ doc บน MSDN ให้เลือกแบบนี้ครับ

สำหรับผม ชอบแบบสุดท้ายที่สุดเพราะมันจะกระจาย SELECT ที่เจอไปบรรทัดใหม่ และแบ่ง Where Clause Condition ไปบรรทัดใหม่เช่นเดียวกัน แต่ถ้าเลือกเเบบ Compact จะขึ้นบรรทัดใหม่เฉพาะตัวที่เป็น QUERY หลักซึ่งคิวรี่ที่เหลือจะยาวเสียจนทะลุบรรทัด แต่ดูเป็นระบบกว่าแม้จะไม่ค่อยสะอาดตาสักเท่าไหร่

มาดูตัวอย่าง ก่อนจัดระเบียบ







หลังจัดระเบียบ

วันพฤหัสบดีที่ 1 ตุลาคม พ.ศ. 2558

เทคนิคง่ายๆในการแสดงข้อมูลประเภทการเงิน การบัญชี ใน SQL SERVER


ในเรื่องเงินๆทองๆ หน่วยที่น้อยที่สุดคือ 1 สตางค์ (ทศนิยมสองตำแหน่งจะได้ 0.01) และ SQL SERVER ได้สร้างประเภทข้อมูลทางราคาไว้ให้ใช้งานง่ายๆแล้วคือ DECIMAL แต่การคำนวนจริงๆได้ข้อมูลที่ละเอียดกว่า 2 ตำแหน่งอยู่แล้ว ตัวอย่างง่ายๆก็เช่น อยากได้ค่าภาษี(6.3%) กับสินค้า 1295 บาท จะได้ 81.585 คำถามคือ 0.005 ที่เกินมาเราจะทำยังไง

ปล.ตอนรับเรทภาษีมูลค่าเพิ่มใหม่จาก 7% เป็น 6.3% ที่เริ่ม 1 ตุลานี้ เลยเขียนบทความนี้เป็นตัวอย่างซะเลย

เราก็จะปัดขึ้นหรือปัดลงตามปกติ แต่เมื่อสินค้ามีเพิ่มเป็นร้อย เป็นพันชิ้น มันจะเริ่มเห็นความเเตกต่างของเงินที่คำนวนได้ ก็เงินที่จ่ายจริงๆ ในภาษาโปรแกรมเราสามารถเก็บค่าก่อนปัดเศษเพิ่อเอาไว้คำนวนต่อมีฟังชั่นประมาณนี้

ROUND() คือการปัดขึ้นถ้าเศษสุดท้ายมากกว่า 5 และปัดลงถ้าเศษน้อยกว่า 5 สามารถกำหนดความละเอียดของตำแหน่งทศนิยมได้
SELECT ROUND(81.585, 3, 2)
-- 81.585

แล้วยังกำหนดความละเอียดของหลักที่จะเริ่มปัดได้ เช่น
SELECT ROUND(81.585, 2)
-- 81.590

FLOOR() คือการปัดลงทุกกรณี
SELECT FLOOR(81.585)
-- 81

CEILING() คือการปัดขึ้นทุกกรณี
SELECT CEILING(81.585)
-- 82

อีกเทคนิคหนึ่งคือการ CAST หรือการเปลี่ยน TYPE ของตัวเลขซะเลย ซึ่งจริงๆแล้วมันคือการ ROUND() ก่อน CAST() เช่น
SELECT CAST( 0.0453 AS DECIMAL(10,2))
--0.05
*จะเห็นว่าเศษโดนปัดก่อนแปลงเป็นทศนิยม 2 หลัก

ถ้าคุณเขียนโปรแกรมเกี่ยวกับฟังชั่นคำนวนบัญชีคงจะมีประโยชน์อยู่ไม่น้อย เพราะงานเหล่านี้ทุกทศนิยมต้องเปะๆเท่ากัน ห้ามมีตกหล่น แล้วการปัดเศษง่ายๆนี้แหละที่ทำให้พลาดกัน

วันพฤหัสบดีที่ 13 สิงหาคม พ.ศ. 2558

POSTMAN สุดยอดเครื่องมือทดสอบ API



หากต้องสร้าง Web API ขึ้นมาสักตัวนึงไว้ให้ลูกค้าหรือVerdor เข้ามาติดต่อกับเราผ่านอินเตอร์เฟสแทนที่จะเข้าถึง database ของเราตรงๆ เราก็ต้องใช้API ใช่ไหมครับ ทีนี้เวลาเทสก็ต้องสร้าง Request จำลองขึ้นมาด้วยเครื่องมือสักตัว หนึ่งในเครื่องมือผมใช้แล้วบอกต่อเลยว่าเทพคือ POSTMAN

จริงๆเครื่องมือประเภทนี้มีเยอะเเยะในตลาดทั้งเสียตังกับฟรี แต่เหตุผลที่แนะนำตัวนี้เพราะมีฟรี เบาเพราะเป็น Google Chrome Extension แล้วยังมาพร้อมประสิทธิภาพที่สุดยอด ยิ่งอัพเว่อชั่นใหม่มีการปรับเปลี่ยนหน้าตา UI ใหม่น่าใช้มากยิ่งขึ้น

วิธีลงโปรแกรมก็ทั้งง่ายและฟรี โดยเปิดโครมเว็บบราวเซอร์ แล้วเข้าไปที่ https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?utm_source=chrome-app-launcher-info-dialog



มาเรื่องความสามารถเจ๋งๆที่ต้องร้อง ว้าว!
การเก็บ History : ทุกครั้งที่เราสร้าง request ใหม่เรามารถกลับไปดู History ก่อนหน้าเพื่อเปรียบเทียบกันได้
การเก็บ Collection : หากมี Request ที่ต้องใช้งานเป็นประจำก็สามารถบันทึกลงเป็นคอเล็กชั่นเพื่อแบ่งหมวกหมู่ได้
การ Export ข้อมูล : Collection สามารถส่งออกได้เป็นรูปแบบ json เพื่อเอาส่งให้DEV คนอื่นๆ import ใช้งานต่อ

The Basic ก่อนสร้าง FORM POST เป็นก็ต้องรู้ว่า POST มายังไง

ที่ Chrome Debugger mode สามารถส่อง Xhr request เพื่อดูว่า parameter เเละ header มีรูปร่างหน้าตาอย่างไร  ซึ่งจะแสดงข้อมูลค่อนข้างละเอียดเช่น URL อะไร เป็นโพสหรือเก็ต, status code, header detail และ response ที่เกิดขึ้น ซื้อเราสามารถจำลองได้ โดย copy ส่วนของ request header ไปใส่โพสแมน

ไปที่ Network > กด F5 >  เลือก XHR 


Step การใช้งาน(อย่างกระชับ) (กระชับไปไม่รู้เรื่อง >> อ่านทดลองสร้าง POST ข่างล่าง)
1. เลือก RESTFUL  VERB คือการกำหนด method ที่ใช้ติดต่อ ไม่ว่าจะเป็น GET POST PUT DELETE
2. กำหนด Body Message คือการระบุ Key และ Value หรือจะกรอกเป็น URL Params ก็ยังได้
3. กำหนด Authorization ไม่เคยลองฟังชั่นนี้ครับ แต่ถ้าต้องการระบุตัวตนด้วย OAuth สากล ก็ควรใช้ตัวนี้

ทดลองสร้าง POST

1. เปิด application POSTMAN จาก chrome//:apps ขึ้นมาก่อน กดปุ่ม + เพื่อสร้าง connection ใหม่โดย เลือก From Method เป็น POST แล้วกรอก URL ที่เราต้องการเทส


2. กดเลือกที่เมนู Body จะแสดงตัวเลือก request header

- ถ้าเว็บคุณส่ง data จาก Form ปกติให้เลือก x-www-form-urlencoded จะมี Form ให้กรอกข้อมูลต่อ
- แต่หากต้องการสร้าง request ด้วย JSON ให้เลือก raw > JSON (application/json)


3. ช่องให้กรอก Form parameter จัดเลยครับอย่ารอช้า โดยในตัวอย่างเว็บไซด์ส่วนตัวของผมส่ง parameter ทั้งหมด 2 ตัว ตามรูปนะครับ

- ถ้าเป็น JSON ก็กรอกตาม format ซึ่ง POSTMAN เองก็ฉลาดพอที่จะเช็คความถูกต้องของ Syntax ก่อนส่งอีกด้วย

4. กด Send  จะแสดงข้อมูลขึ้งด้านล่าง เป็นอันจบครับ

5. กด Save เพื่อเก็บความทรงจำการเทสครั้งนี้ตลอดไป... ถุย เอาไว้เทสใหม่คราวหน้าจะได้ไม่เสีเวลากรอกใหม่ >> ชอบตรงนี้แหละ

6. กด History ถ้าจำไม่ได้ว่าอดีตเคยทำพลาดอะไรไว้ แล้วอยากรื้อความทรงจำ... ถุย เอาไว้ track ดู request เก่าๆนั้นแหละ เพื่อไม่ได้ save เอาไว้


7. Import/Export หมัดเด็ด เอาไว้สำหรับพกพา script ไปได้ทุกที่  เเค่เลือก Collection > Download Collection แค่นี้ก็แชร์ให้คนอื่นๆในทีมได้เเล้ว



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


วันจันทร์ที่ 6 กรกฎาคม พ.ศ. 2558

[Note] Error บน ASPX และ IIS

บทความนี้เก็บโน๊ต error ทั้งหมดที่ผมเคยเจอพร้อมวิธีแก้ น่าจะมีประโยชน์ครับถ้าเจอคล้ายๆกันและเอาไปปรับใช้กับ IIS จอมงอแง แตะนิดแตะหน่อยติดเออเรอตลอด


1. ตัวแรก Interop.MSXML2 โหลดไม่สำเร็จให้ลอง check app pool ดูว่าเป็นเวอร์ชั่นไหน ถ้ายังคงเป็น 2.0 ให้ลองเเก้เป็น 4.0 เเล้วรีสตาร์ทอีกครั้ง

Configuration Error

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.


Parser Error Message: Could not load file or assembly 'Interop.MSXML2' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.



2. เวลาสร้าง table หรือ store procedure ใหม่แล้วเรียกใช้งานผ่าน ASP.NET execute store แสดง error : sql server invalid object name อาจเกิดจากการบันทึก cache ของตัง SQL Manager เองให้ลอง refresh ฐานข้อมูลก่อนจนกระทั้งเห็น Object ที่สร้าง แล้วเลือกคำสั่ง

Edit -> IntelliSense -> Refresh Local Cache  หรือ Ctrl + Shift + R

ตามรูป





3. เวลาใส่อักษรพอเศษเข้าไปก่อน POST REQUEST  เช่น $&#*(@&$*(#@&$*(#&$*(#&$*(#@&$)#(@$)#@*$)#@($*)(@

Server Error in '/' Application.

A potentially dangerous Request.Form value was detected from the client (ctl00$cpContent$txtCampaignID="$&#*(@&$*(#@&$*(#&$*(...").

Description: ASP.NET has detected data in the request that is potentially dangerous because it might include HTML markup or script. The data might represent an attempt to compromise the security of your application, such as a cross-site scripting attack. If this type of input is appropriate in your application, you can include code in a web page to explicitly allow it. For more information, see http://go.microsoft.com/fwlink/?LinkID=212874.

Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00$cpContent$txtCampaignID="$&#*(@&$*(#@&$*(#&$*(...").

Source Error:


[No relevant source lines]

Source File: c:\Users\ITspare03\AppData\Local\Temp\Temporary ASP.NET Files\root\9b6fe0e4\13708e62\App_Web_cwkso5lr.2.cs    Line: 0 


วิธีแก้ ให้เข้าไปเพิ่มบรรทัดนี้ใน system.web อย่าลืมตั้ง target framework เป็น 4
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <pages validateRequest="false" />
    <httpRuntime requestValidationMode="2.0" />
  </system.web>

May be like this posts