Smarty $smarty.post 它不工作,即使它正在工作的所有保留变量包括 .get 等

Smarty $smarty.post it's not working even all reserved variable it's working include .get etc

我如何使用它

<input name="name" type="input" value="<?php echo @$_POST['name'] ?>" />

在 smarty 引擎中。

我试过预留变量

{$smarty.post.name}

但它给出了错误 undefined variable 而我聪明的 class 对象名称是 $Smarty.

这是我的表格

<form method="post">
  {if strpos($SessionMessage, "Success") === FALSE}
    <h4 style="margin-top:10px">Post Your Comment:</h4>
    {$Message}

    <div class="form-group">
      <label>Name:</label>
      <input type="text" class="form-control" name="name" value="{if isset($smarty.post.name)}{$smarty.post.name}{/if}" placeholder="ext: Jon doe" />
    </div>
    <div class="form-group">
      <label>Comment:</label>
      <textarea cols="5" rows="5" class="form-control" name="comment" value="{if isset($smarty.post.comment)}{$smarty.post.comment}{/if}" placeholder="comments"></textarea>
    </div>
    <div class="form-group">
      <input type="submit" class="btn btn-success" value="Submit" name="submit" />
    </div>
  {else}
    {$Message}
  {/if}
</form>

这是我的PHP代码

if(isset($_POST['submit'])) {
    $Name = trim($_POST['name']);
    $Body = trim($_POST['comment']);

    if(!empty($Body)) {
        $Comment = Comment::Make($Photo->id,$Name,$Body);
        if (is_object($Comment)) {
            if($Comment->Create()) {
                $Comment->SendNotification();
                $Session->MSG("Success: Comment is submit, awaiting for approval");
                RedirectTo("photo.php?id={$Photo->id}");
            } else {
                $Session->MSG("Danger: Something is Wrong");
                RedirectTo("photo.php?id={$Photo->id}");
            }
        } else {
            $Session->MSG("Danger: Something is Wrong");
            RedirectTo("photo.php?id={$Photo->id}");
        }           
    }else{
        $Session->MSG("Danger: Comment is empty");
        RedirectTo("photo.php?id={$Photo->id}");
    }
}

这是我所有与代码相关的表格,如果我在其中做错了什么,您可以检查一下,请告诉我。实际上很聪明。得到它工作正常但是。post它不工作。

变量 {$smarty.post.name} 应该可以工作,但您必须添加一个 isset 函数。

value="{if isset($smarty.post.name)}{$smarty.post.name}{/if}"

添加您的表单和 PHP 代码后,问题似乎很明显:您添加的重定向不传输 POST 数据。

您应该直接将您的表单发送到 photo.php?id={$Photo->id} 并在那里处理,不要进行任何重定向。