首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Smarty 保留變數完整指南:$smarty.get/post/request/cookie/session/server/env/now/const/capture/section/foreach/template/version/ldelim/rdelim

     編輯:PHP 綜合知識

保留變數總覽

{$smarty} 為特殊保留變數,無需 assign() 即可在模板中直接存取 PHP 超全域陣列與環境資訊。

請求相關變數對照表

模板語法對應 PHP範例
{$smarty.get.page}$_GET['page']URL: ?page=3 → 3
{$smarty.post.username}$_POST['username']表單送出欄位
{$smarty.request.id}$_REQUEST['id']GET/POST/COOKIE 合併
{$smarty.cookie.sid}$_COOKIE['sid']Cookie 值
{$smarty.session.user_id}$_SESSION['user_id']Session 值 (需 session_start)

環境與系統變數

模板語法對應 PHP用途
{$smarty.server.HTTP_USER_AGENT}$_SERVER['HTTP_USER_AGENT']瀏覽器資訊
{$smarty.server.REQUEST_URI}$_SERVER['REQUEST_URI']請求路徑
{$smarty.env.PATH}$_ENV['PATH']環境變數
{$smarty.now}time()當前 Unix 時間戳
{$smarty.const.PHP_VERSION}PHP_VERSIONPHP 常數存取

模板執行狀態變數

變數說明
{$smarty.capture.foo}讀取 {capture name=foo}...{/capture} 內容
{$smarty.section.sec1.index}{section name=sec1} 迴圈屬性 (index, iteration, first, last, show, total)
{$smarty.foreach.myloop.first}{foreach name=myloop} 迴圈屬性
{$smarty.template}目前模板檔名 (如 index.tpl)
{$smarty.version}Smarty 版本號
{$smarty.ldelim} / {$smarty.rdelim}左/右定界符 (預設 { / })

實務應用範例

<!-- 表單保持輸入值 -->
<input name="keyword" value="{$smarty.get.keyword|escape:'html'}">

<!-- 登入狀態顯示 -->
{if $smarty.session.user_id}
    歡迎,{$smarty.session.username|escape}
    <a href="/logout">登出</a>
{else}
    <a href="/login">登入</a>
{/if}

<!-- 除錯輸出 -->
<!-- {$smarty.server|@print_r} -->
<!-- {$smarty.const|@print_r} -->

安全注意事項

  • 永遠加上 |escape:'html' 輸出用戶輸入 (get/post/request/cookie) 防 XSS
  • 避免在模板直接存取 $_SERVER['PHP_AUTH_PW'] 等敏感鍵
  • {$smarty.session} 需確認 session_start() 已執行

相關專題

  • 《Smarty 模板入門基礎教程》
  • 《PHP 模板技術總結》
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved