|  | 
	                
  
    | 
	 
        สอบถามเรื่อง ip address javascript validation เช็คค่า ip ที่ไม่ซ้ำกันก่อนบันทึกข้อมูลลงฐานข้อมูล     |  
    |  |  
 
              
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | มันคงจะมีวิธีที่ดีกว่านี้นะ ลองดู 
 Code (PHP)
 
 	$ip = "ssd";
	
	$arr = explode(".",$ip);
	
	if(count($arr) == 4)
	{
	             //select โดย where ตาม $ip
	}
	else
	{
		//insert
	}
 หรือไม่ก็ ไม่ต้องตัด explode แค่ไป
 
 Code (PHP)
 
 $xx = select ipaddress_a  from sourcedestination where ipaddress_a = '$ip'
 
 ถ้า row ออกมา มากกว่า 0 แสดงว่ามันมีข้อมูลอยู่แล้ว
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-10-03 08:17:56 | By :
                            anotherdie |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | อ้างอิงจาก No.1 
 Code (PHP)
 
 $continue = true;
$ip = "????";
$arr = explode(".",$ip);
if(isset($arr[3]) )
{
       $sql = "select ipaddress_a  from sourcedestination where ipaddress_a = '$ip' "
       $qry = mysql_query($sql) or die(mysql_error());
       if(mysql_num_rows($qry) > 0)
       {
              $continue = false;
       }
}
if($continue == true)
{
	//Insert
}else{
	//Duplicate IP
}
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-10-03 09:20:39 | By :
                            {Cyberman} |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เราไม่สามารถตรวจสอบว่าข้อมูลเป็น IP จริงๆ หรือเปล่าด้วย explode() และการตรวจสอบจำนวนสมาชิกใน array ลองคิดดูว่าหากกรอก 'xxx.xxx.xxx.xxx' หรือแม้แต่ '...' โปรแกรมก็จะมองว่าเป็น IP อยู่ดี
 การ validate ต้องทำด้วย regular expression หรือฟังก์ชั่นที่ออกแบบมาเพื่อตรวจสอบเช่น filter_var()
 
 ตัวอย่าง
 
 <?php
$ip = '127.0.0.1';
// ถ้ามีการกรอก IP
if (!empty($ip)) {
	// ถ้าเป็น IP
	if (preg_match('/^\s*\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s*$/', $ip)) {
		// ตรวจว่ามีแถวที่มีค่า IP นั้นๆ อยู่หรือไม่
		if (!mysql_fetch_row(mysql_query("SELECT * FROM `sourcedestination` WHERE `ipaddress_a` = '$ip' LIMIT 1"))) {
			// ถ้าไม่ซ้ำก็ INSERT
			mysql_query("INSERT INTO `sourcedestination` (`ipaddress_a`) VALUES ('$ip')");
		} else {
			// ทำการบอกผู้ใช้ว่า IP ซ้ำ
		}
	} else {
		// ทำการบอกผู้ใช้ว่า IP ที่กรอกมามีรูปแบบไม่ถูกต้อง
	}
}
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-10-03 09:47:03 | By :
                            phpinfo() |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ตรวจสอบความถูกต้องของ IP ด้วย filter_var() 
 <?php
$ip = '127.0.0.1';
// ถ้ามีการกรอก IP
if (!empty($ip)) {
	// ถ้าเป็น IP
	if (filter_var($ip, FILTER_VALIDATE_IP)) {
		// ตรวจว่ามีแถวที่มีค่า IP นั้นๆ อยู่หรือไม่
		if (!mysql_fetch_row(mysql_query("SELECT * FROM `sourcedestination` WHERE `ipaddress_a` = '$ip' LIMIT 1"))) {
			// ถ้าไม่ซ้ำก็ INSERT
			mysql_query("INSERT INTO `sourcedestination` (`ipaddress_a`) VALUES ('$ip')");
		} else {
			// ทำการบอกผู้ใช้ว่า IP ซ้ำ
		}
	} else {
		// ทำการบอกผู้ใช้ว่า IP ที่กรอกมามีรูปแบบไม่ถูกต้อง
	}
}
 หรือตรวจสอบความถูกต้องของ IP ด้วย ip2long()
 
 <?php
$ip = '127.0.0.1';
// ถ้ามีการกรอก IP
if (!empty($ip)) {
	// ถ้าเป็น IP $n จะเป็นตัวเลข นอกนั้นจะเป็น false
	// ใช้ @ ไว้ด้วยเพราะ ip2long() จะสร้าง warning หากรูปแบบ IP ไม่สามารถแปลงเป็นตัวเลขได้
	if (is_int(@ip2long($ip))) {
		// ตรวจว่ามีแถวที่มีค่า IP นั้นๆ อยู่หรือไม่
		if (!mysql_fetch_row(mysql_query("SELECT * FROM `sourcedestination` WHERE `ipaddress_a` = '$ip' LIMIT 1"))) {
			// ถ้าไม่ซ้ำก็ INSERT
			mysql_query("INSERT INTO `sourcedestination` (`ipaddress_a`) VALUES ('$ip')");
		} else {
			// ทำการบอกผู้ใช้ว่า IP ซ้ำ
		}
	} else {
		// ทำการบอกผู้ใช้ว่า IP ที่กรอกมามีรูปแบบไม่ถูกต้อง
	}
}
 ลองประยุกต์ใช้ดูนะครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-10-03 09:51:51 | By :
                            phpinfo() |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | สุดยอดครับ อิอิ   พอดีผมมองว่ามันเป็น string ตัวนึง 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-10-03 10:40:48 | By :
                            anotherdie |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |  |