2012-03-29 2 views
2

검색 막대가 있습니다. 텍스트를 입력하고 검색을 클릭하면 검색 결과를 표시하는 다른 페이지로 이동합니다.html 요소에 서식 변수 값 지정

문제는이 검색 표시 줄이 응용 프로그램의 모든 페이지 상단에 표시되며 특정 페이지 (검색 페이지 포함)의 일부가 아닙니다.

요구 사항에 따라 검색 창에 이전 검색 문자열을 표시해야합니다. Google과 같은 것. 실제로 검색 양식은 다음 (가정 양식 필드 이름을 추가 할 수 있습니다 표시하는 파일에서

+0

세션 변수를 사용해야합니다 -> http://www.school-for-champions.com/coldfusion/sessionvariable.htm – GuZzie

+0

세션 변수는 도움이되지 않습니다. 왜냐하면 새로운 검색을 시작하고 다른 임의의 페이지, 이전 문자열은 여전히 ​​보존됩니다. –

+0

검색이므로 FORM 메서드는 GET이어야합니다. 검색 결과는 URL에 있습니다. –

답변

7

<cfparam name="form.search" default="" /> 
<input type="text" name="search" value="#HTMLEditFormat(form.search)#" ... /> 

는 INPUT뿐만 아니라 주위 CFOUTPUT 태그가 있는지 확인 '검색'이다. 또한, 사용 입력 변수를하고 출력 HTMLEditFormat(), 그렇지 않으면 주입 공격에 자신을 여는

+2

또한이 변수를 표시하기 전에 위생적인 ​​위험이 있으므로이 변수를 살균하십시오. 일반적으로 HTML에 직접 변수를 출력하는 것은 항상 나쁜 생각입니다. 나는 최신 CF9 패치가 도움이된다고 생각하지만, 미안보다 훨씬 안전합니다. OWASP의 Anti-Sammy를 사용하여 큰 성공을 거두었습니다. –

+1

좋은 지적입니다, Jon. –

0

그런 다음 양식을 게시하는 경우.

<input ... value='#form.FieldName#' /> 

하는 경우 다음을 통해 URL을 전달합니다.

<input ... value='#url.FieldName#' /> 

ifs 또는 cfparams를 사용하여 표시 방법을 제어 할 수 있습니다.