반응형
출처 https://chongmoa.com:45183/sql/514
1.문서저장형식(php) : UTF8
2.MYSQL 테이블형식 : UTF8
3.FLEX : UTF8
1.문서저장형식(php) : ANSI
2.MYSQL : UTF8
3.mysql_query("set names utf8"); 후 INSERT시 한글 안 깨짐.
4.mysql_query("set names utf8"); 이든 euc-kr이든 안하고 넣음 깨짐.
이상적인 형태 :
flex : utf8,
mysql:utf8,
php : utf8
현재 쓰고 있는 형태 :
flex : utf8
mysql:utf8
php:ansi
mysql_query("set names euckr");
한글 insert전
iconv('utf-8', 'euc-kr',$str) 해서 저장 하고
빼올 때도 iconv('euc-kr', 'utf-8', $str)로 flex로 던져줌
utf-8 일때 변경 및 새로 해야 할 것.
flex : utf8
mysql : utf8
php : ansi
mysql_query("set names utf8");
mysql : utf8
php : ansi
mysql_query("set names utf8");
utf-8 일때 DB 이전후 깨질때 함수의 경우(sql_query라 할때 상단 부분에 @mysql_query("set names utf8", $connect_db);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function sql_query($sql, $error='') { $connect_db = sql_connect(DB_HOST, DB_USER, DB_PASS) or die('MySQL Connect Error!!!'); $select_db = sql_select_db(DB_NAME, $connect_db) or die('MySQL DB Error!!!'); @mysql_query("set names utf8", $connect_db); // Blind SQL Injection 취약점 해결 $sql = trim($sql); // union의 사용을 허락하지 않습니다. $sql = preg_replace("#^select.*from.*union.*#i", "select 1", $sql); // `information_schema` DB로의 접근을 허락하지 않습니다. $sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql); //@mysql_query("set names euckr"); if ($error) : $result = @mysql_query($sql, $connect_db) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : {$_SERVER['PHP_SELF']}"); else : $result = @mysql_query($sql, $connect_db); endif; return $result;} |
euc-kr 일때 변경 및 새로 해야 할 것.
flex : euckr
mysql : euckr
php : ansi
mysql_query("set names euckr");
mysql : euckr
php : ansi
mysql_query("set names euckr");
euc-kr 일때 DB 이전후 깨질때 함수의 경우(sql_query라 할때 상단 부분에 @mysql_query("set names euckr", $connect_db);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function sql_query($sql, $error='') { $connect_db = sql_connect(DB_HOST, DB_USER, DB_PASS) or die('MySQL Connect Error!!!'); $select_db = sql_select_db(DB_NAME, $connect_db) or die('MySQL DB Error!!!'); @mysql_query("set names euckr", $connect_db); // Blind SQL Injection 취약점 해결 $sql = trim($sql); // union의 사용을 허락하지 않습니다. $sql = preg_replace("#^select.*from.*union.*#i", "select 1", $sql); // `information_schema` DB로의 접근을 허락하지 않습니다. $sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql); //@mysql_query("set names euckr"); if ($error) : $result = @mysql_query($sql, $connect_db) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : {$_SERVER['PHP_SELF']}"); else : $result = @mysql_query($sql, $connect_db); endif; return $result;} |
반응형