Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
2n 06.06.2006 23:19
Код обратной связи взят из примеров. Весь процесс выполняеться без сообщений об ошибках и даже вадаеться сообщение об отправке сообщения. Но на почту ничего не приходит. В чем может быть проблема?# метод проверяет все-ли поля формы заполнены. если все хорошо должен вернуть 1, иначе - 0 @is_ok[] $result(^if(def $form:name && def $form:question){1}{0}) #end @is_ok[] @main[] ... $to[<2n@mail.ru>] ^rem{ *** от какого адреса будет отправляться письмо *** } $from[feedback@$env:SERVER_NAME] ^if($form:action eq "done"){ ^rem{ *** сюда мы попадём после внешнего редиректа когда всё уже успешно отправилось *** } ^rem{ *** тут пишем посетителю что-нить доброе за то, что он отправил нам пожелание *** } $reply_thanks[Сообщение отправлено] }{ } ^if(def $form:do){ ^rem{ *** если что-то пришло к нам в элементе 'do' - значит форма сабмитится *** } ^if(^is_ok[]){ $now[^date::now[]] ^rem{ *** если данные валидные, то пробуем отправить письмо *** } ^try{ ^mail:send[ $.from[^if(^is_email[$form:email]){$form:email}{$from}] $.to[$to] $.subject[Сообщение с сайта http://$env:SERVER_NAME/] $.charset[$response:charset] $.text[Пользователь: $form:name^#0A^if(def $form:email){E-mail: $form:email^#0A}Вопрос:^#0A$form:question^#0A^#0AСообщение отправлено: ^now.sql-string[]^#0AIP: $env:REMOTE_ADDR] ] }{ ^rem{ *** использовали try т.к. в отправке письма может возникнуть ошибка *** } ^rem{ *** и тут мы окажемся, если эта ошибка таки возникла *** } ^rem{ *** говорим парсеру, что с этой ошибкой мы разберёмся сами *** } $exception.handled(1) ^rem{ *** ну и надо что-нить сообщить пользователю в связи с ошибкой *** } ^rem{ *** конечно хорошо-бы ещё записать что-нить в лог файл про эту ошибку *** } <p>Сожалеем, но при отправке письма возникла неизвестная ошибка.</p> } ^rem{ *** делаем _внешний_ редирект на себя, чтобы защититься от Reload *** } ^rem{ *** правда от Back все равно таким образом не защититься *** } ^rem{ *** для того, чтобы редирект был внешним не забываем начать адрес с http:// *** } $response:location[http://^taint[as-is][${env:SERVER_NAME}$request:uri]^if(^request:uri.pos[?]>=0){&}{?}action=done] }{ ^rem{ *** не заполнены какие-то поля формы. ругаемся. *** } ^rem{ *** при этом не сбрасываем флаг что нужно показывать форму. *** } ^rem{ *** т.е. после ругани у нас покажется форма *** } ^rem{ *** при этому уже заполненные ранее пользователям данные не будут потеряны *** } $err_field_empty[<b><font color="#cc0000">Не заполнены обязательные поля формы!</font></b><p>] } } <form method="post" action="/about/" enctype="multipart/form-data"> ^rem{ *** именно по этому элементу мы будем определять, постится форма или нет *** } ^rem{ *** если вы хотите анализировать это по элементу 'action', то вашу форму невозможно... *** } ^rem{ *** ...будет запостить с помощью нажатия клавиши enter или с помощью js события *** } $err_field_empty $reply_thanks <input type="hidden" name="do" value="do" /> Ваше имя:<br /> <input type="text" name="name" value="$form:name" size="30" /><br /> E-mail:<br /> <input type="text" name="email" value="$form:email" size="30" /><br /> Ваш вопрос:<br /> <textarea name="question" cols="50" rows="8">$form:question</textarea><br /> <input type="submit" name="action" value="Отправить" /> </form> </body></html>