1
내 템플릿 시스템은 Smarty 라이브러리를 사용합니다. 모든 양식에는 CSRF로부터 보안을 위해 해시 (토큰)가 숨겨진 입력이 있습니다. 이로 인해 Smarty는 새로 고침 할 때마다 페이지를 컴파일합니다.Smarty 컴파일 템플릿 PHP
입력이나 양식 또는 코드를 컴파일하지 않도록 Smarty에 알리는 방법은 무엇입니까?
감사합니다.
내 템플릿 시스템은 Smarty 라이브러리를 사용합니다. 모든 양식에는 CSRF로부터 보안을 위해 해시 (토큰)가 숨겨진 입력이 있습니다. 이로 인해 Smarty는 새로 고침 할 때마다 페이지를 컴파일합니다.Smarty 컴파일 템플릿 PHP
입력이나 양식 또는 코드를 컴파일하지 않도록 Smarty에 알리는 방법은 무엇입니까?
감사합니다.
Smarty가 모든 템플릿을 컴파일합니다. 이것이 작동하는 방식입니다. Smarty에게 템플릿을 컴파일하지 말라고 말할 수는 없습니다. Smarty는 템플릿을 컴파일하지만 템플릿에서 변수를 사용하면 변수가 사용되므로 CSRF 토큰이 가변적이면 컴파일 된 템플릿에 저장되지 않습니다.
그러나 아마도 캐싱에 대해 이야기하고있을 것입니다. 이 문제를 해결하거나 문제를 이해하는 데 도움이되는 몇 가지 코드를 게시하려면 캐싱 설정을 살펴 봐야합니다.
나는 템플릿 안에 {include}로 템플릿을 사용합니다. 포함 된 템플릿에서 나는 vars를 사용합니다. 그것을 표시하면 포함 된 템플릿없이 첫 번째 템플릿 만 컴파일 한 후 코드가 표시됩니다. 내가하는 일보다 $ smarty-> fetch 두 번. 하지만 첫 번째 템플릿의 변수는 문자열이 아니고 더 이상 변수가 아닙니다. 어떻게 해결할 수 있을까요? 고맙습니다. –
@Upimform 당신이 성취하려는 것을 모르지만 이것은 fetch 기능이 작동하는 방법입니다. 디스플레이와 동일하게 작동하지만 파싱 된 템플릿을 반환하기 때문에 표시하지 않고 문자열에 저장할 수 있습니다. 아무것도 더. –