내 홈페이지의
sparcs 분점을 만들면서 XHTML 1.1와 CSS 표준을 모두 만족시켰다. (본점의 대문도 마찬가지)
그런데 태터툴즈는 이미 validation result를 익히(....) 알고 있던 터라 손을 못 대고 있었는데 마음 먹은 김에 확 해 보기로 했다.
이것저것 삽질 끝에...
(img 태그에 alt 붙이고, 심지어 src가 없는 img가 난무하기도 했으며, cellspacing을 모두 없애고 css로 대체.. px 단위가 빠진 좌표며, #을 빠뜨린 색상 지정 등등...)
한가지, 그리고 가장 고치기 어려운 에러가 하나 남았다.
무엇인고 하니...
Line 115, column 51: reference to entity "PHPSESSID" for which no system identifier could be generated
...="index.php?ct1=3& amp;ct2=6&PHPSESSID=18d5d8e585fb3012b9ca22e5ee4c15af">
This is usually a cascading error caused by a an undefined entity reference or use of an unencoded ampersand (&) in an URL or body text. See the previous message for further details.
#
Line 115, column 41: entity was defined here
... <a href="index.php?ct1=3& amp;ct2=6&PHPSESSID=18d5d8e585fb3012b9ca22e5ee4c1
OTL...
W3C 표준에 따르면, ampersand 문자는 entity를 정의하는 데 사용되기 때문에 URL 및 HTML 내부에서는 & amp;로 대체해서 써야 한다. 그런데 php에서 세션 관리를 통해 자동으로 붙는 PHPSESSID가 저렇게 넘어갔더라는 것이다. 문제는, 소스 코드에는 아무 하자가 없는데(굉장히 꼬여 있긴 하지만 -_-) validator로 넘어가면 저렇게 php seesion id가 붙어버린다는 것.
이 문제는 더이상 내가 아는 범위로는 해결이 불가능하다. 누가 좀 알려주시면....ㅜ_ㅠ;;
ps. 표준에 맞추려다 보니 트리 출력 부분 때문에 어쩔 수 없이 태터 소스코드에 손을 대야 하더라..orz