Помогите пожалуйста разобраться. пишу простенький модуль для joomla обратной связи,
вроде работает и сообщения выводит - но срабатывает сразу при загрузке сайта и каждый раз при обновлении страницы.
js вообще не использовал, все на php и фреймворке Joomla
Это у меня ошибка в коде или дело в том что нет проверки на заполненность формы? Но все равно можно сделать чтобы даже без проверки форма сама не срабатывала, а тока при нажатии кнопки работала?
Вот код default.php из папки tmpl
Код:
|
<?php
// No direct access
defined( '_JEXEC' ) or die;
?>
<div id="scform"class="module<?php echo $moduleclass_sfx; ?>">
<form id="form" action="" method="POST">
<H3>Форма обратной связи</H3>
<div id="result"></div>
<div id="fields">
<p><input type="text" name="name" id="text" placeholder="Имя"> <label for="text">Как вас зовут</label></p>
<p><input type="email" name="email" id="email" placeholder="E-mail"> <label for="email">Ваша почта</label></p>
<p><input type="text" name="tel" id="tel" placeholder="Телефон"> <label for="tel">Ваш телефон</label></p>
<p><textarea name="message" cols="30" rows="10" id="message" placeholder="Введите сюда текст сообщения"></textarea></p>
<p><button type="submit" id="submit" class="go">Отправить сообщение</button></p>
</div>
</form>
</div> |
Вот обработчик - он в отдельном файле php
Код:
|
$mail = '<p>Сообщение от: <b>'.$name.'</b> <br> Телефон: <b>'.$tel.'</b> <br> Сообщение: <br> '.$message.'</p>';
$mailer->setSubject( 'Письмо с Вашего сайта' );
$mailer->setBody($mail);
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$send = $mailer->Send();
if ( $send !== true ) {
echo 'Error sending email: ' . $send->__toString();
} else {
echo 'Mail sent';
}
require_once( dirname( __FILE__ ). '/helper.php' );
$moduleclass_sfx = htmlspecialchars( $params->get( 'moduleclass_sfx' ) );
require( JModuleHelper::getLayoutPath( 'mod_contact', $params->get( 'layout', 'default' ) ) ); |