Всем добрый вечер. Перенося на Smarty форму столкнулся с тем, что после заполнения формы и подтверждения , письмо уходит , а вот сообщение подтверждения отправки не показывается... contact.php PHP: <?php include ("header.php"); include ("scripts/functions.php"); $e_mail = [email='admin@admin.com]'admin@admin.com[/email]'; $post = $_POST['name'] && $_POST['text'] && $_SESSION['captcha'] == $_REQUEST['code']; if ($post) { $message = "От: $name <br>Обратный адрес: $email <br>Текст: $text "; mail("$e_mail", "Письмо с сервера ", "$message", "From: $name<$email>\nContent-Type: text/html; charset=utf-8\nContent-Transfer-Encoding: 8bit"); } $smarty = new Smarty; $smarty->debugging = false; $smarty->caching = true; $smarty->cache_lifetime = 120; $smarty->assign("post", $post); $smarty->display('contact.tpl'); #выводим шаблон include ('footer.php'); #футер и правая колонка ?> contact.tpl HTML: {if $post} <!--Подтверждение отправки--> <table> <tr> <td bgcolor="#F4F4F4" colspan="14" height="50" valign="top"> <p align="center" class="ssilktextden"><font color="red">Спасибо, Ваше письмо отправлено.</font><br/> <br/><br/> <a href="./" class="nav">На главную</a></p> </td> </tr> </table> {else} <!--Форма отправки--> <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" > <tbody> <tr> <!-- center column --> <td width="100%" valign="top" style="padding-right: 3px;"> <!-- stat table --> <table width="100%" cellpadding="0" cellspacing="3" border="0" style="margin: 5px 0 5px 0;"> <tr> <td width="100%"> <table cellspacing="1" cellpadding="0" width="100%" bgcolor="#e1e1e1" border="0"> <tbody> <tr> <td> <table cellspacing="1" cellpadding="0" width="100%" bgcolor="#ffffff" border="0"> <tr> <td> <table cellspacing="1" cellpadding="8" width="100%" border="0" style="margin-bottom: 10px;"> <tr> <td bgcolor="#f5f5f5" colspan="2"><b>Задать вопрос администрации com.com</b></td> </tr> <tr> <td bgcolor="#e1e1e1" colspan="2" height="1"></td> </tr> <form action="" method="post"> <tr> <td width="25%" align="right" valign="top" bgcolor="#fcfcfc"><b>Ваше имя:</b><br /><br /><b>Обратный адрес:</b><br /><br /><b>Текст письма:</b> </td> <td width="75%" align="left" bgcolor="#f5f5f5" style="padding-left: 5px;"> <input size="50" name="name" class="textinput"/> *<br /><input size="50" name="email" class="textinput"/><br /><input type="hidden" value="1" name="d"/> <textarea id="textarea" name="text" rows="7" cols="50" class="textinput"></textarea>* <br/>Введите числа, изображенные на картинке:<br/><img src="captcha/captcha.php" id="captcha1"/> <a href="javascript: image_reload('1');" class="js"><img src="captcha/images/refresh.gif" alt="Обновить картинку" border="0"/></a> <input type="text" name="code" size="15" class="textinput"/> </td> </tr> <tr> <td> </td> <td> <input type="submit" name="submit" class="submit" value="Отправить письмо" class="input1"/> </tbody></table> </td> </tr> </form> </table> </td> </tr> </tbody> </table> </td> </tr> </table> </td> </tr> </table> {/if} Всё тупо и работает, но узверь не видит , что всё ок.... Заранее спасибо.
Дело в том что Smarty не понимает {if $post} (eсли $post bool) Проверяй явно {if $post eq "true"} eq - == ne - !=
Проверь чему равна переменная $post в php скрипте перед $smarty->assign("post", $post); Или просто напиши такую проверку: вместо $smarty->assign("post", $post); напиши $smarty->assign("post", true);
Код (Text): Проверь чему равна переменная $post в php скрипте перед $smarty->assign("post", $post); Код (Text): bool(false) При Код (Text): $smarty->assign("post", true); сразу кричит, что отправил......
Ну так вот из этого следует что $post принимает всегда false. Следовательно в шаблоне tpl ошибки нет - {if $post eq "true"} - правильно. Нужно искать ошибку в срипте вот здесь: $post = $_POST['name'] && $_POST['text'] && $_SESSION['captcha'] == $_REQUEST['code']; Вы проверяли переменную $post как только письмо ушло?
Код (Text): Вы проверяли переменную $post как только письмо ушло? После отправки Код (Text): bool(true) но при Код (Text): {if $post eq "true"} форма не переключается, блин....
не вижу наследования. Короткие теги у меня запретил хостер. Смарти вроде как не нативный. Проверок на существования переменных/ключей в массиве тоже не наблюдаю