За последние 24 часа нас посетили 53697 программистов и 1725 роботов. Сейчас ищут 864 программиста ...

Заглюк формы отправки почты на Smarty

Тема в разделе "PHP для новичков", создана пользователем yoyo-moyo, 13 ноя 2009.

  1. yoyo-moyo

    yoyo-moyo Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    57
    Симпатии:
    0
    Адрес:
    Latvija
    Всем добрый вечер.

    Перенося на Smarty форму столкнулся с тем, что после заполнения формы и подтверждения , письмо уходит , а вот сообщение подтверждения отправки не показывается...

    contact.php
    PHP:
    1.  
    2. <?php
    3. include ("header.php");
    4. include ("scripts/functions.php");
    5.  
    6. $e_mail = [email='admin@admin.com]'admin@admin.com[/email]';
    7. $post = $_POST['name'] && $_POST['text'] && $_SESSION['captcha'] == $_REQUEST['code'];
    8. if ($post)
    9. {
    10.    $message = "От: $name <br>Обратный адрес: $email <br>Текст: $text ";
    11.    mail("$e_mail", "Письмо с сервера ", "$message", "From: $name<$email>\nContent-Type: text/html; charset=utf-8\nContent-Transfer-Encoding: 8bit");
    12. }
    13.  
    14. $smarty = new Smarty;
    15. $smarty->debugging = false;
    16. $smarty->caching = true;
    17. $smarty->cache_lifetime = 120;
    18. $smarty->assign("post", $post);
    19.  
    20.  
    21. $smarty->display('contact.tpl'); #выводим шаблон
    22. include ('footer.php'); #футер и правая колонка
    23. ?>
    24.  

    contact.tpl
    HTML:
    1.  
    2. {if $post}
    3.               <!--Подтверждение отправки-->
    4.         <table>
    5.           <tr>
    6.            <td bgcolor="#F4F4F4" colspan="14" height="50" valign="top">
    7.            <p align="center" class="ssilktextden"><font color="red">Спасибо, Ваше письмо отправлено.</font><br/>
    8.            <br/><br/>  <a href="./" class="nav">На главную</a></p>
    9.            </td>
    10.           </tr>
    11.          </table>
    12. {else}
    13.               <!--Форма отправки-->
    14.    <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" >
    15.    <tbody>
    16.     <tr>
    17.               <!-- center column -->
    18.      <td width="100%" valign="top" style="padding-right: 3px;">
    19.               <!-- stat table -->
    20.   <table width="100%" cellpadding="0" cellspacing="3" border="0" style="margin: 5px 0 5px 0;">
    21.     <tr>
    22.      <td width="100%">
    23.   <table cellspacing="1" cellpadding="0" width="100%" bgcolor="#e1e1e1" border="0">
    24.    <tbody>
    25.     <tr>
    26.      <td>
    27.   <table cellspacing="1" cellpadding="0" width="100%" bgcolor="#ffffff" border="0">
    28.     <tr>
    29.      <td>
    30.   <table cellspacing="1" cellpadding="8" width="100%" border="0" style="margin-bottom: 10px;">
    31.     <tr>
    32.      <td bgcolor="#f5f5f5" colspan="2"><b>Задать вопрос администрации com.com</b></td>
    33.     </tr>
    34.     <tr>
    35.      <td bgcolor="#e1e1e1" colspan="2" height="1"></td>
    36.     </tr>
    37.   <form action="" method="post">
    38.     <tr>
    39.      <td width="25%" align="right" valign="top" bgcolor="#fcfcfc"><b>Ваше имя:</b><br /><br /><b>Обратный адрес:</b><br /><br /><b>Текст письма:</b>
    40.      </td>
    41.      <td width="75%" align="left" bgcolor="#f5f5f5" style="padding-left: 5px;">
    42.      <input size="50" name="name" class="textinput"/>&nbsp;*<br /><input size="50" name="email" class="textinput"/><br /><input type="hidden" value="1"  name="d"/>
    43.      <textarea id="textarea" name="text" rows="7" cols="50" class="textinput"></textarea>*
    44.      <br/>Введите числа, изображенные на картинке:<br/><img src="captcha/captcha.php" id="captcha1"/>
    45.      <a href="javascript: image_reload('1');" class="js"><img src="captcha/images/refresh.gif" alt="Обновить картинку" border="0"/></a>
    46.      <input type="text" name="code" size="15" class="textinput"/>
    47.      </td>
    48.     </tr>
    49.     <tr>
    50.      <td>&nbsp;</td>
    51.      <td>
    52.      <input type="submit" name="submit" class="submit" value="Отправить письмо" class="input1"/>
    53.     </tbody></table>
    54.       </td>
    55.     </tr>
    56.     </form>
    57.       </table>
    58.         </td>
    59.         </tr>
    60.         </tbody>
    61.           </table>
    62.           </td>
    63.         </tr>
    64.       </table>
    65.     </td>
    66.   </tr>
    67. {/if}
    68.  
    Всё тупо и работает, но узверь не видит , что всё ок....

    Заранее спасибо.
     
  2. yoyo-moyo

    yoyo-moyo Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    57
    Симпатии:
    0
    Адрес:
    Latvija
    Нет спецов по смарти, или вопрос очень тупой ?
     
  3. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Напиши свой шаблонизатор, там работы минут на 15-20.
     
  4. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Apple
    напиши-ка мне вложенные циклы и блоки с наследованием за 15 минут =)
     
  5. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Koc
    HTML:
    1. <? while(true){?>
    2.      <?for($i=0;$i<100;$i++){?>
    3.           Циииклы <br>
    4.      <?}?>
    5. <?}?>
     
  6. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Дело в том что Smarty не понимает {if $post} (eсли $post bool)
    Проверяй явно {if $post eq "true"}
    eq - ==
    ne - !=
     
  7. yoyo-moyo

    yoyo-moyo Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    57
    Симпатии:
    0
    Адрес:
    Latvija
    Круто, да..........
     
  8. yoyo-moyo

    yoyo-moyo Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    57
    Симпатии:
    0
    Адрес:
    Latvija
    Amatory999

    Спасибо, попробую.
     
  9. yoyo-moyo

    yoyo-moyo Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    57
    Симпатии:
    0
    Адрес:
    Latvija
    Код (Text):
    1. {if $post eq "true"}
    Не работает...
     
  10. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Проверь чему равна переменная $post в php скрипте перед $smarty->assign("post", $post);
    Или просто напиши такую проверку:
    вместо
    $smarty->assign("post", $post);
    напиши
    $smarty->assign("post", true);
     
  11. yoyo-moyo

    yoyo-moyo Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    57
    Симпатии:
    0
    Адрес:
    Latvija
    Код (Text):
    1. Проверь чему равна переменная $post в php скрипте перед $smarty->assign("post", $post);
    Код (Text):
    1. bool(false)
    При
    Код (Text):
    1. $smarty->assign("post", true);
    сразу кричит, что отправил......
     
  12. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Ну так вот из этого следует что $post принимает всегда false. Следовательно в шаблоне tpl ошибки нет - {if $post eq "true"} - правильно. Нужно искать ошибку в срипте вот здесь:
    $post = $_POST['name'] && $_POST['text'] && $_SESSION['captcha'] == $_REQUEST['code'];
    Вы проверяли переменную $post как только письмо ушло?
     
  13. yoyo-moyo

    yoyo-moyo Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    57
    Симпатии:
    0
    Адрес:
    Latvija
    Код (Text):
    1. Вы проверяли переменную $post как только письмо ушло?
    После отправки
    Код (Text):
    1. bool(true)
    но при
    Код (Text):
    1. {if $post eq "true"}
    форма не переключается, блин....
     
  14. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Пришлите мне скрипт и tpl на DeathNote666собакаlist.ru
     
  15. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    не вижу наследования. Короткие теги у меня запретил хостер. Смарти вроде как не нативный. Проверок на существования переменных/ключей в массиве тоже не наблюдаю
     
  16. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Сменить неадекватного хостера.

    З.ы
    Смарти зло.
     
  17. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Несогласен.
     
  18. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Amatory999
    цыц
     
  19. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Не понял юмора...