웹소스코딩가이드 - 기초

2012.01.26 16:36

이건 조회 수:21089

출처 : http://www.phpschool.com/link/tipntech/73518

 

웹소스코딩가이드 - 기초

이런 기본 모른다면 코딩하지마. 뒤에 사람이 골치아퍼!

URL / POST Send Data
URL("POST로 넘기는 값)에서는 기본적으로 한글을 표현할 수 없다. 그러므로 규칙에 맞게 변경해줘야한다.
하지만 브라우저에서는 무시하고 처리해줄 수 있다.(오작동 가능성이 있음)
URL("POST로 넘기는 값)을 구성하는 값이 <form>에서 submit되지 않는 이상, 밑의 함수를 사용해서 수동 처리 해줘야한다!
관련함수
urlencode() / urldecode()
rawurlencode() / rawurldecode() : 스페이스와 +를 변경하지 않는다.
관습적으로 URL에서는 스페이스를 +로 바꿔서 사용한다. rawurlencode를 사용하면 %20을 대신 사용한다.
관련 문제점
base64_encode(url) 를 사용할 경우 변환된 값에 +가 들어있을 수 있다. 이 때 +가 넘어오면 php에서는 스페이스로 보이게 된다. 즉, 넘어온 글자가 깨질 수 있다.
주의! : url에 값을 안 깨지기 위해서 base64를 사용하지 마라!(바보짓이다!)
form을 사용시
<form> 속에서 <input>에 값을 넣고 submit 할경우는 문제 없다. 브라우저가 전송시 변경해서 보내준다!


HTML

<script> 속 주석(CDATA)표시
<script type="~~~~">
// <!-- (or <![CDATA[ )
// --> (or ]]>)
</script>
위처럼 안 해도 실제 브라우저 사용에서는 문제 없다.
브라우저에서 저 부분을 알아서 처리해준다.
해야하는 이유
HTML에서의 &, < , > 등을 표현할 때는 직접 표현할 수 없고, html 엔티티 형식으로 나타내야하는데, JS의 연산자 등에서는 & , < , >를 직접 써야하므로 HTML 규칙에 어긋나게 된다.
그 부분을 무시하게 하기 위해서 주석처리( xHTML은 CDATA처리)를 해주게 된다.

HTML entity
HTML에서는 & , < , > 등을 직접나타내면 안된다.
& , < , > 로 변환해서 나타내야한다.
HTML entity 는 HTML속 attribute나 text-node 에서 전부 적용되야 HTML 규칙에 맞게된다.
적용 안해도 브라우저에서 대부분 처리해준다.
HTML validator는 통과할 수 없다.
Magic Quotes (PHP)
Magic Quotes 란
When on, all ' (single-quote), " (double quote), \ (backslash) and NULL characters are escaped with a backslash automatically. This is identical to what addslashes() does.
(메뉴얼 발취)
' , " , \ , NULL 글자에 대해서 자동으로 \를 붙여준다.(addslashes() 참고)
효과는 SQL-injection 방지...
PHP 5.3에서는 DEPRECATED , PHP6에서는 REMOVE다. 즉, 사용하지 않는 것을 기준으로 작업하라

Magic Quotes 문제점
\ 자동으로 \가 붙어서 \\ 형식이 되는데, DB가 ORACLE 일 경우 escape 처리자가 \가 아니라서
게시판 등에서 수정을 할 때마다
\\ -> \\\\ -> \\\\\\\\
처럼 된다.
' 를 기준으로 보면
\' -> \\' -> \\\\'
처럼 된다.

-----------=-------------
회사 소스 보니깐, 기본도 모르고 만들어 놓고, 너무 많이 퍼셔서 수정을 못할 정도라서....
웹관련을 한다면 URL ENCODE 정도는 한번 알아보세요.

번호 제목 글쓴이 날짜 조회 수
340 [하이퍼바이저]VMware vSphere Hypervisor 5.1 무료라이센스 키 발급 받기 [2162] file 고객센터-최재원 2012.11.22 280805
339 안드로이드(android) wmware zimbra 기본강좌 [678] file 이건 2011.08.12 106089
338 [하이퍼바이져호스팅] VMware ESXi4.1 - CentOS 5 설치 매뉴얼 [633] file 최재원 2011.07.04 35088
337 [하이퍼바이져호스팅] VMware ESXi4.1 클라이언트 설치 매뉴얼 [261] 최재원 2011.07.06 30897
336 [IIS 7 초급 1-2] PHP 어플리케이션을 위한 IIS 웹 서비스 설치 및 구성 [197] file MYIP박광춘 2012.01.18 30430
335 [하이퍼바이져호스팅] VMware ESXi4.1 - Windows 2003 Server 설치 매뉴얼 [144] file 최재원 2011.07.01 26568
334 php중급강좌 > 원본이미지를 정비율로 리사이즈 처리하기 [7] MYIP박광춘 2012.01.31 26552
333 사이트를 방문하는 클라이언트의 IP주소 가져오기 [187] 카츄샤 2012.01.30 25891
332 [하이퍼바이저호스팅] XenServer 5.6 클라이언트 설치 매뉴얼 [199] file 최재원 2011.07.08 24940
331 MyIP장비 메뉴얼 file 고객센터-최재원 2013.04.30 23911
330 find 명령어로 여러파일 한꺼번에 수정하기 [61] Myip 심걸 2011.07.28 23328
329 mode line을 바꾸려면... Myip 심걸 2011.07.21 23219
328 php로excel파일 생성하기 [33] 카츄샤 2012.02.02 22640
327 SSL 인증서 설치가이드 IIS 5.0/6.0 [1] 최재원 2012.04.03 22395
326 php중급강좌 > 이미지 리사이즈 처리를 위한 함수 만들기 [29] MYIP박광춘 2012.01.31 22373
325 [하이퍼바이저 호스팅] XenServer - CentOS 64bit버전 텍스트모드(TEXT mode) 설치 동영상강좌 [62] file 이건 2011.07.29 21992
324 php중급강좌 > 이미지 복사하기 [2] MYIP박광춘 2012.01.31 21726
323 php중급강좌 > 이미지 처리에 필요한 기본함수 만들기 [2] MYIP박광춘 2012.01.31 21341
» 웹소스코딩가이드 - 기초 [50] 이건 2012.01.26 21089
321 PHP리디렉션 방법 [2] 카츄샤 2012.02.01 20923