Browsing articles in "Tips"
Dec 1, 2011
แว่นตก

ใ้ช้ jQuery ตรวจสอบ ต้องกรอกตัวเลขเท่านั้น

เมื่อใน form เรามี textbox เผื่อใส่เฉพาะตัวอักษร
เราจะมีวิธีในการป้องกันการตัวอักษรตัวอื่นดังนี้

1
2
3
4
5
6
7
8
9
10
$("#txtboxToFilter").keydown(function(event) {
 
  if ((event.keyCode == 8           // backspace
        || event.keyCode == 46    // delete
        || (event.keyCode >= 48 && event.keyCode <= 57)   // numbers on keyboard
        || (event.keyCode >= 96 && event.keyCode <= 105))// number on keypad
        ) {
           // Do Something
    }
});

หัวใจของ code นี้คือ keyCode ซึ่งจะให้ค่าเป็นตัวเลขในแต่ละแป้นพิมพ์
ในแต่แป้นพิมพ์จะมีเลขที่ไม่ซ้ำกัน

 

ที่มา

http://stackoverflow.com/questions/995183/how-to-allow-only-numeric-0-9-in-html-inputbox-using-jquery

 

หวังว่าคงจะสามารถเอาไปใช้งานกันได้นะครับ

Sep 12, 2011
แว่นตก

แก้ไขปัญหา ?fb_xd_fragment=

เมื่อไม่นานมานี้ ผมได้เข้า google analytics แล้วพบว่า มี url เพิ่มเข้ามา คือ mysite.com/?fb_xd_fragment=

ผมก็ลองคลิกดู ซึ่งพบว่า มันแสดงหน้าเปล่า แต่พอ view source ก็ยังมีข้อมูลเวปอยู่ แสดงว่ามันต้องมีของแน่เลย

วิชาเวปไซด์หายตัว  ยังมีข้อมูลอยู่นะแต่มองไม่เห็น  เหอะ ๆ

 

เอาวิธีแก้ไขเลยดีกว่า

เอา code ด้านล่าง ไปใส่ด้านล่างของเวปไซด์ก่อน tag </body>

1
2
3
4
5
<!-- Correct fb_xd_fragment Bug Start --> 
<script> 
document.getElementsByTagName('html')[0].style.display='block';
</script> 
<!-- Correct fb_xd_fragment Bug End -->

 
จบ

จบง่าย ๆ แบบนี้แหละ

May 25, 2011
แว่นตก

วิธีส่งเมล์ผ่าน server gmail

รูปของเทคนิค วิธีส่งเมล์ผ่าน server gmail

ในการส่งเมล์ ในบ้างครั้ง server เราก็ไม่อนุญาตให้ส่งเมล์ออกไป หรือไม่ก็ server เราโดนบล๊อกจากผู้ให้บริการอีเมล์ เช่น hotmail gmail yahoo เป็นต้น

เราสามารถแก้ไขโดยการไปใช้ server gmail ในการส่งเมล์แทน server เราเอง แต่เราต้อง

1 . ไปโหลด php class ที่ชื่อว่า phpmailer ก่อน
และ
2. เปิดใช้งาน openssl โดยการ เอาเครื่องหมาย ; หน้า extension=php_openssl.dll จาก php.ini ออก และ Save แล้ว restart Webserver

ตัวอย่าง code การใช้งาน

1
2
3
4
5
6
7
8
9
10
11
12
13
14
require_once('class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsHTML(true); // กำหนดให้ ส่งเป็น html
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = "ssl://smtp.gmail.com:465"; // SMTP GMAIL server
$mail->Username = "xxx@gmail.com"; // GMAIL username
$mail->Password = "xxxxx"; // GMAIL password
$mail->From = "เมลผู้ส่ง"; // "name@yourdomain.com";
$mail->FromName = "ชื่อผู้ส่ง";
$mail->Subject = "หัวข้ออีกเมล";
$mail->MsgHTML("ข้อความที่จะส่ง เป็น html ก็ได้");
$mail->AddAddress("e-mail ผู้รับ", "ชื่อผู้รับ"); // ใส่ email ผู้รับอย่างเดียวก็ได้
$mail->Send(); // ส่งเมลออก

ขอขอบคุณ

http://phpmailer.worxware.com/index.php?pg=phpmailer

http://www.mindphp.com/modules.php?name=News&file=article&sid=101

May 25, 2011
แว่นตก

รับค่า XML เป็น Streaming

ในการที่เราจะใช้บริการ web service เราต้องมีรับ xml ของคนอื่นมา
ทำงานต่อ ซึ่งคำสั่งในการรับ xml นั้นก็คือ

 

1
$data = file_get_contents("php://input");

 

คำสั่งเทพ คำสั่งเดียว จบ

May 25, 2011
แว่นตก

ข้อแตกต่างของ ประกาศตัวแปร และ define

ไม่ว่าจะ้เป็น
การประกาศตัวแปร -> $startpage = “1″;
หรือ การใช้ function define -> define(“startpage”,”1″);

แต่ก็ได้ค่าออกมา เป็นค่าเดียวกันคือ 1

แต่ของแตกต่างของ 2 วิธีนี้ก็คือ

1
2
3
$startpage = "1";
$startpage = "2";
echo  $startpage;  // ได้ผลลัพธ์คือ 2

 

1
2
3
define("startpage","1");
define("startpage","2");
echo  startpage;  // ได้ผลลัพธ์คือ 1

 

หวังว่าคงเข้าใจกันนะครับ

 

เวลาใช้งานก็ดูลักษณะงานด้วยนะครับ :)

 

May 25, 2011
แว่นตก

function แปลง tis620 เป็น utf8

ในการเขียนเวปไซด์บ้างครั้งเรามีความจำเป็นที่จะต้องแปลง unicode
ไปมาระหว่าง tis620 เป็น utf8 หรือจาก utf8 เป็น tis620
ผมขอยกตัวอย่างเคสที่ต้องเปลี่ยน unicode
เช่น db เป็น tis620 แต่หน้าเวปไซด์เรา เป็น utf8
และเราไม่สามารถที่จะเ้ปลี่ยนจาก db เป็น utf8
และเราก็ไม่สามารถเปลี่ยนเวปไซด์เป็น tis620 ได้
เราต้องใช้ function ดังกล่าวเปลี่ยน unicode ครับ

function ในการแปลงจาก tis620 เป็น utf8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function tis620_to_utf8($tis) {
  for( $i=0 ; $i< strlen($tis) ; $i++ ){
    $s = substr($tis, $i, 1);
    $val = ord($s);
    if( $val < 0x80 ){
	 $utf8 .= $s;
    } elseif ((0xA1 <= $val and $val <= 0xDA) 
              or (0xDF <= $val and $val <= 0xFB))  {
	 $unicode = 0x0E00 + $val - 0xA0;
	 $utf8 .= chr( 0xE0 | ($unicode >> 12) );
	 $utf8 .= chr( 0x80 | (($unicode >> 6) & 0x3F) );
	 $utf8 .= chr( 0x80 | ($unicode & 0x3F) );
    }
  }
return $utf8;
}

function ในการแปลงจาก utf8 เป็น tis620

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function utf8_to_tis620($string) {
  $str = $string;
  $res = "";
  for ($i = 0; $i < strlen($str); $i++) {
	if (ord($str[$i]) == 224) {
	  $unicode = ord($str[$i+2]) & 0x3F;
	  $unicode |= (ord($str[$i+1]) & 0x3F) << 6;
	  $unicode |= (ord($str[$i]) & 0x0F) << 12;
	  $res .= chr($unicode-0x0E00+0xA0);
	  $i += 2;
	} else {
	  $res .= $str[$i];
	}
  }
  return $res;
}
May 25, 2011
แว่นตก

เซตเวลาในการติดต่อกับเวปอื่น

ในการเขียนเวปไซด์ บ้างครั้งเรามีความเป็นที่จะต้องนำข้อมูลของที่อื่น มาแสดงในเวปของเรา
โดยที่ไม่ใช่แบบ iframe แต่ใช้ ฟังก์ชั่น ของ php เช่น fopen() หรือ file_get_contents()
ซึ่งวิธีนี้ ข้อดีคือ เราสามารถกำหนดรูปแบบในการแสดงผลได้ แต่ข้อเสียคือ ถ้าเวปที่เราไปเอา
ข้อมูลมาไม่สามารถเข้าได้ หรือพูดง่ายๆ คือ เวปล่ม และจะทำให้เวปเราล่มไปด้วย

แต่มีวิธีแก้ไข คือเราจะต้องไปกำหนเวลาในการติดต่อ ถ้าหมดเวลาตามที่เรากำหนดก็ให้ยกเลิกการติดต่อ

โดยใช้คำสั่งนี้

1
ini_set('default_socket_timeout',$time)

โดยที่
$time = เวลาที่ใช้ในการให้ติดต่อ หน่วยเป็น วินาที

ปล. ขอแนะนำว่าหลังจากใช้ ฟังก์ชั่นนี้แล้วให้เซตค่ากลับด้วย
ซึ่งค่าปกติคือ 60 วินาที

 

วิธีแนะนำโดย โอ@WLS

May 25, 2011
แว่นตก

ลบข้อความแนะนำของ text input

ในเวลาที่เรากดคลิกที่ text input ปกติแล้วจะมีรายการข้อความที่เราเคยพิมพ์ไปแล้ว
แสดงขึ้นมาอัตโนมัติ ซึ่งมันก็สะดวกดี แต่ในบางครั้งเราเขียนโปรแกรมที่มี
ความปลอดภัยสูง เราก็ไม่อยากจะให้มีข้อความที่เราพิมพฺ์ไปแล้วแสดงขึ้นมา
เราสามารถทำได้โดยเพิ่ม code เข้าไปดังนี้

1
<input name="textname" type="text" id="textname" autocomplete="off" />

เทคนิคนี้เหมาะสมกับช่อง Username แต่วิธีจะทำให้ไม่ผ่าน W3C นะครับ

Pages:123»