'HTML'에 해당되는 글 2건

  1. PHP 개발 - HTML 태그나 스크립트의 작동을 막기 htmlspecialchars
  2. PHP 한글 깨짐현상 해결하기(html, mysql) (2)

PHP를 활용하여 개발을 하다 보면 DB에 저장되어 있는 글을 가져와 표시해야할 때가 있습니다. 그럴때 DB 내용에 HTML 태그나 여타 스크립트가 포함되어 레이아웃이 사용자 임의대로 변경되거나 XSS 공격에 사용될 수 있습니다.


DB에서 불러올 때 문자열을 변환해 이런 태그나 스크립트의 작동을 막아주는 함수입니다.


 PHP 개발 - HTML 태그나 스크립트의 작동을 막기 htmlspecialchars



PHP 사용 예시

echo htmlspecialchars($content);



위와 같이 하면 만약에 $content 변수에 <script>를 집어넣으면 &lt;script&gt;로 변환되어 더이상 스크립트의 역할을 하지 못하게 됩니다.




하지만 사용자가 브라우저로 보는 상에서는 <script> 문자열로 잘 보입니다. 


주로 인터넷 게시판에서 글 작성시 스크립트로 동작하지 않고 문자열로 잘 보이는 것과 같은 원리입니다.(HTML 허용시는 당연히 예외)


이 함수에 대한 더 자세한 사용방법이나 설명은 PHP 사이트에서 확인할 수 있습니다.


http://docs.php.net/manual/en/function.htmlspecialchars.php












도움이 되셨나요?

그럼 손가락을 눌러주세요:)




저작자 표시 비영리 동일 조건 변경 허락
신고
PHP를 사용하여 개발하다보면, 한글로 된 값이 나올때도 있을 수 있습니다. 그런데 PHP를 통하면 DB에 깨져서 들어간다던지, 아니면 html 값이 깨질 때도 있습니다.

 
PHP 한글 깨짐현상 해결하기(html, mysql)

PHP를 통했을때 한글이 깨지는 현상 해결하는 방법엔 여러가지가 있습니다.
먼저 한글 깨지는 현상이 DB나 클라이언트 문제가 아닌 PHP가 원인인지 확인후 진행하는것이 좋습니다.
Mysql 입출력 방식이 문제였던 저 같은 경우에는 마지막 방법으로 성공하였습니다.

1. 인코딩 방식 통일(PHP 저장 방식, 웹 형식 모두 utf-8로 통일)


문서 저장 방식을 모두 하나로 통일하는 방법입니다.

2.  iconv() 사용

iconv("현재 인코딩", "바꿀 인코딩", 바꿀 문자열)

사용 예시 )
$ex = iconv("utf8", "euckr", $ex);

3. Mysql 입출력 인코딩을 지정
Mysql 연동을 한다면 입출력 인코딩이 달라서가 원인이 될 수 있다고 합니다.
아래 3줄의 소스를 추가함으로써 해결하였습니다.

mysql_query("set session character_set_connection=utf8;");

mysql_query("set session character_set_results=utf8;");

mysql_query("set session character_set_client=utf8;");


4. php가 출력하는 html을 utf-8로 변경

PHP에서 출력하는 html을 utf-8로 변경함으로써 해결합니다.
PHP내용 <?,?> 위 아래로 추가합니다.

<html>

<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>

<body>

<?
PHP 내용
?> 

</body>

</html>



참고한 사이트 : 
http://ra2kstar.tistory.com/59




도움이 되셨나요?
그럼 손가락을 눌러주세요:) 
 

  

 
저작자 표시
신고