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}
并在那里处理,不要进行任何重定向。
我如何使用它
<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}
并在那里处理,不要进行任何重定向。