Присвоение значения суперглобальных ($ _GET, $ _POST, $ _REQUEST, $ _SESSION, $ _COOKIE, $ _SERVER, $ _ENV) является излишним. Вы можете получить доступ к любому из них в шаблоне через переменную {$smarty}, в вашем случае {$smarty.post.do}
.
Ниже справедливо для Smarty3:
Третий аргумент assign() является флагом NoCache. Для получения дополнительной информации об этом см. cacheability of variables. Если это действительно решит вашу проблему, ваша настоящая проблема кроется в вашем кэшировании. Вероятно, у вас есть $smarty->caching = true;
, и в этом случае шаблон не будет отображаться при каждом вызове, но, если это возможно, прочитайте из кеша.
Если вам нужна дополнительная помощь, вы можете уточнить, что произошло с ошибками.
Помимо этого, пожалуйста, внимательно посмотреть на другие замечания предлагая $_POST['do']
над $_POST[do]
и использование isset()
или empty()
, где это применимо.
Вы сначала проверяете, если 'if isset ($ _ POST ['do'])' перед назначением? Поместите цитаты вокруг 'do', так как вы вынуждаете PHP интерпретировать константу как строковый массив. –
yes Я проверяю его –
'error_reporting (E_ALL)' ваш друг ... вы должны использовать '$ _POST ['do']' not '$ _POST [do]' –