문제

html의 실제 코드로 표시되기 때문에 일부 코드를 탈출하면 (예 : 예제 코드 스 니펫의 경우) 데이터베이스에 저장 한 다음 편집기 (HTML 페이지)로 다시 가져 오면 HTML로 표시됩니다. 탈출 된 텍스트와 반대로.

내 문제는 텍스트에 TextRea 태그를 포함시킬 때 발생합니다. 편집 영역을 조기에 닫고 저장 될 때 나머지 내용을 자르기 때문입니다 (또는 태그를 닫지 않으면 더 이상).

제 질문은 다음과 같습니다. 이것은 브라우저의 일부에서 의도 된 동작입니까? -> 그래서 텍스트를 피해야합니다 (코드와 사전 태그 아마도)? 변경하고 싶을 때마다? 아니면 내가 뭔가 잘못하고 있습니까?

*나는 이것을 사용하는 유일한 사람이며 대부분 학습을위한 것이므로, 보안 측면에 대해 걱정하지 않아서 브라우저에서 사용할 때 HTML을 처리 해야하는 방법에 대해 걱정하지 않습니다. 예상되는 방법.

도움이 되었습니까?

해결책

@단발: htmlentities () 동일하지 않습니다 htmlspecialchars ()

htmlentities ()는 ASCII 코드가있는 모든 문자를 해당 코드로 변환합니다. htmlspecialchars ()

이것은 일부를 깨뜨릴 수 있으며 htmlentities ()를 사용할 때 결과가 엄청날 수있는 주요 차이점입니다.

다른 팁

내 경험상, 당신은 일종의 특별한 캐릭터 탈출을해야합니다. php에서 함수는 htmlspecialchars ()입니다. 나는 다른 기능에 대해 모른다. 그러나 브라우즈는 TextRea에 인코딩 된 문자를 올바르게 표시합니다.

대부분의 웹 기반 언어에는 HTML- 인터 오염 된 문자를 피하기위한 라이브러리 기능이 있으므로 사용중인 언어에 대한 설명서를 확인하십시오.

Darryl과 마찬가지로 Html_entities () (htmlspecialchars ()의 별칭 인)은 PHP에서 트릭을 수행 할 것입니다.

이것은 브라우저의 일부에 대한 의도 된 동작입니까? 예, 브라우저는 귀하의 (Escaped) HTML 코드를 페이지에 속하는 HTML 태그로 해석하여이를 수행합니다.

그래서 텍스트를 피해야합니다 (코드와 사전 태그 아마도)?예, Darryl Hein이 말했듯이 htmlspecialchars ()를 사용하십시오. 브라우저에서 올바르게 표시되며 편집에서 돌아올 때 데이터를 "에스케이프"할 필요가 없습니다.

... 내가 뭔가 잘못하고 있습니까?응용 프로그램에 오거나 떠나는 입력을 검사하고 브라우저, 데이터베이스 서버 및 솔루션의 다른 부분에 특별한 의미가있는 문자의 가능성이 있는지 확인해야합니다. 모든 상호 작용에 대해 특수 문자를 올바르게 피해야합니다 (예 : MySQL 데이터베이스의 경우 MySQL_ESCAPE_STRING (), HTML의 경우 HTMLSPECIALCHARS () 등).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top