08.04.2014, 18:20
|
Новичок на форуме
|
|
Регистрация: 08.04.2014
Сообщений: 3
|
|
Форма отправки сообщения с сайта
Добрый день, целый день просматриваю разные статьи, но ничего не могу понять.
Вопрос такой: есть сайт, на нем есть форма отправки сообщения.
Сайт писал не я, да и знаний у меня по javascript совсем нет. Пытаюсь понять куда уходят сообщения и вообще уходят ли они. Т.к. в Админке нет формы приема сообщений. Получается мне надо прописать где то адрес моей почты? Извините за нубские вопросы...
Если не сложно, подскажите как действовать дальше?
Фраза типа: начать изучать Java не ответ
<div class="popup" id="popup">
{* Фон *}
<div class="popup_bg" onclick="javascript:hidePopup();"></div>
{* форма *}
<div class="popup_form">
<img src="/templates/{$template}/images/online_order_top_bg.gif" width="700" height="19" alt="" class="popup_form_bg" style="top: -19px;">
<img src="/templates/{$template}/images/online_order_bottom_bg.gif" width="700" height="19" alt="" class="popup_form_bg" style="bottom: -19px;">
<img src="/templates/{$template}/images/close.gif" class="close" alt="" onclick="javascript:hidePopup();">
<p id="popup_head">Снять квартиру!</p>
<form method="post" enctype="application/x-www-form-urlencoded" id='rent'>
<p id="name_text"><strong>Имя</strong> <span></span></p>
<input type="text" name="name" value="" class="form_field" id="name" />
<p id="email_text"><strong>Телефон *</strong> <span></span></p>
<input type="text" name="email" value="" class="form_field" id="email" />
<p id="phone_text"><strong>E-mail *</strong> <span></span></p>
<input type="text" name="phone" value="" class="form_field" id="phone" />
<p><strong>Комментарий</strong></p>
<textarea rows="5" cols="50" name="comment"></textarea>
<input type="hidden" name="form_name" value="" id='form_name' />
<input type="hidden" name="do" value="send_order" />
<p style="padding-top: 30px;"><input type="submit" name="send" value=" Отправить " class="button" onclick="if (!checkForm(['name', 'email', 'phone'], 'phone')) return false;" /></p>
</form>
</div>
</div>
{* Подтверждение отправки сообщения *}
<div class="popup" id="popup_confirm" {if $smarty.get.success == 1} style="display: block" {/if}>
{* Фон *}
<div class="popup_bg"></div>
{* форма *}
<div class="popup_form">
<img src="/templates/{$template}/images/online_order_top_bg.gif" width="700" height="19" alt="" class="popup_form_bg" style="top: -19px;">
<img src="/templates/{$template}/images/online_order_bottom_bg.gif" width="700" height="19" alt="" class="popup_form_bg" style="bottom: -19px;">
<p style="padding: 0 30px;">Сообщение было успешно отправлено. В ближайщее время с Вами свяжутся наши менеджеры.</p>
<p style="padding: 30px;">
<input type="button" name="send" value=" ОК! " class="button" onclick="javascript:document.location.href='/';" />
</p>
<div style="width: 100%; clear: both;"></div>
</div>
</div>
|
|
09.04.2014, 00:31
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Сообщение от hardwolf
|
уходят ли они.
|
Предоставленный код не дает ответ на этот вопрос. Action не указан, скрипт, который отправлял бы после самбмита, тоже...
Сообщение от hardwolf
|
Фраза типа: начать изучать Java не ответ
|
да и не поможет.
|
|
09.04.2014, 14:37
|
Новичок на форуме
|
|
Регистрация: 08.04.2014
Сообщений: 3
|
|
Сообщение от BETEPAH
|
Предоставленный код не дает ответ на этот вопрос. Action не указан, скрипт, который отправлял бы после самбмита, тоже...
|
ясно.. значит не с того начал... что искать тогда? С чего начать?
|
|
09.04.2014, 18:27
|
Аспирант
|
|
Регистрация: 29.01.2013
Сообщений: 43
|
|
Нужен параметр Action для формы, который передаст ваши переменные скрипту для отправки сообщения.
Разберитесь с работой form action submit и передачей параметров скрипту для отправки.
|
|
10.04.2014, 13:36
|
Новичок на форуме
|
|
Регистрация: 08.04.2014
Сообщений: 3
|
|
Вроде бы то, что нужно файл show.action.php.
<?php
// Запрет на обращение к файлу.
if (realpath($_SERVER['SCRIPT_FILENAME']) == realpath(__FILE__)) {
header('Location: /');
exit();
}
// Отправка формы
$e = array(
'all' => false,
'email' => false,
'name' => false,
'phone' => false,
);
$name = '';
$email = '';
$phone = '';
$comment = '';
$form_name = '';
if (text::get_post('do') == 'send_order'){
$name = htmlspecialchars(stripcslashes(text::get_post('name')));
$email = htmlspecialchars(stripcslashes(text::get_post('phone')));
$phone = htmlspecialchars(stripcslashes(text::get_post('email')));
$comment = htmlspecialchars(stripcslashes(text::get_post('comment')));
$form_name = htmlspecialchars(stripcslashes(text::get_post('form_name')));
if (text::check_mail($email) === false)
$e['all'] = $e['email'] = true;
if ($name == '')
$e['all'] = $e['name'] = true;
if ($phone == '')
$e['all'] = $e['phone'] = true;
if ($e['all'] === false) {
$mail = 'victor@gmail.com';
$subj = 'Заявка с сайта '.$_SERVER['SERVER_NAME'].' ('.$form_name.')';
$mail_body = '
<p>Заявка: '.$form_name.'</p>
<p>Контактное лицо: '.$name.'</p>
<p>Телефон: '.$phone.'</p>
<p>E-mail: '.$email.'</p>
<p>Комментарий: '.$comment.'</p>
';
sendMail($mail, $subj, $mail_body);
header("Location: ".$_SERVER['REQUEST_URI'].(preg_match('/\?/', $_SERVER['REQUEST_URI'])?'&':'?').'success=1');
exit();
}
}
$date = self::getConf('date');
$current_lang = self::getConf('curlang');
$__template = self::getConf('tpl');
$db_table_prefix = self::getConf('db_table_prefix');
$tree = self::getConf('tree');
$dbh = self::getConf('dbh');
// Для показа статических страниц нужно разобрать URL
$url = eregi_replace("\?(.*)$", '', $_SERVER['REQUEST_URI']);
$url = eregi_replace("index\.html$", '', $url);
if (!preg_match("/\/(".preg_replace('/'.self::getConf('deflang').'\|/', '', implode('|', self::getConf('langs'))).")/i", $url))
$url = '/ru'.$url;
$aStrings = explode("/", preg_replace("/^\/(.*)\/?$/U", "\\1", $url));
/* Создание запроса для поиска страницы. */
$f = '';
$w = '';
foreach ($aStrings as $key => $value) {
// Строка в FROM
$f .= '`'.$db_table_prefix.'pages` `p'.$key.'`,';
// Строка в WHERE. Для всех уровней.
$w .= ($w != ''?' AND ':'').' `p'.$key.'`.`alias` = "'.$value.'" AND `p'.$key.'`.`level` = '.($key+1);
if (isset($aStrings[$key+1]))
// Строка в WHERE. Для чилдренов.
$w .= ' AND `p'.$key.'`.`left` < `p'.($key+1).'`.`left` AND `p'.$key.'`.`right` > `p'.($key+1).'`.`right`';
}
$f = ereg_replace(",$", '', $f);
$query = "SELECT `p".(count($aStrings)-1)."`.* FROM ".$f." WHERE ".$w;
// Получение информации о странице.
if (!$result_row = $DB->selectRow($query)) {
// Страница не найдена. Попытка ввода url вручную или поломались ключи у дерева (врятли).
require_once DOC.'/error404.php';
}
/* Шаблон страницы. */
$tpl = is_null($result_row['template'])?'index':is_file(System_Settings::getSmarty_template_dir().$result_row['template'].'.tpl')?$result_row['template']:'index';
$c = components($result_row['text'], $db_table_prefix);
$result_row['text'] = $c[0];
foreach ($result_row as $key => $value) {
if ($key != 'text')
$result_row[$key] = text::stsl($value);
}
foreach ($result_row as $key => $value)
$result_row[$key] = stripcslashes($value);
/**
* Получение хлебных крошек.
*/
$resource = $tree->enumPath($result_row['id'], false);
$parents = array();
while ($data = $dbh->fetch_array($resource))
{
$parents[] = $data;
}
// Определение заголовков.
$page_title = $result_row['title']!=''?$result_row['title']:$result_row['name'];
self::setTemplatesVar($tpl, 'page_title', isset($c[1]) && $c[1] !== false?$c[1]:$page_title);
self::setTemplatesVar($tpl, 'page', $result_row);
self::setTemplatesVar($tpl, 'parents', $parents);
self::setTemplatesVar($tpl, 'url', isset($aStrings[3])?$aStrings[3]:null);
// Шаблон для вывода статических страниц
self::SetTemplates($tpl);
|
|
12.04.2014, 18:42
|
Аспирант
|
|
Регистрация: 29.01.2013
Сообщений: 43
|
|
Отправка почты с сайта
Приведу 2 простых файла которые отправляют почту с сайта:
1й сама форма для отправки form.html
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript">
<html>
<head> </head>
<body>
function check(form)
{
if((form.name.value=="")||(form.theme.value=="")||(form.message.value=="")||(form.e_mail.value==""))
{
alert("Вы заполнили не все поля!");
return false;
}
else
return true;
}
</script>
<script language="javascript">
function checkEmail(inputvalue){
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
if(pattern.test(inputvalue))
{
return true;
}
else
{
alert("Вы неверно заполнили поле E-mail!");
return false;
}
}
</script>
<form name="contacts" method="POST" action="send.php" onsubmit="return check(contacts)">
<center>
<table class="name_fields">
<tr>
<td><div align="left">Ваше имя</div></td>
<td><div align="left">
<input type="text" name="name" size="40" onfocus="this.style.background='#e0f7bd'" onblur="this.style.background='#ffffff'">
</div></td>
</tr>
<tr>
<td><div align="left">Тема</div></td>
<td><div align="left">
<input type="text" name="theme" size="40" onfocus="this.style.background='#e0f7bd'" onblur="this.style.background='#ffffff'">
</div></td>
</tr>
<tr>
<td><div align="left">Сообщение</div></td>
<td><div align="left">
<textarea rows="10" name="message" cols="40" onfocus="this.style.background='#e0f7bd'" onblur="this.style.background='#ffffff'"></textarea>
</div></td>
</tr>
<tr>
<td><div align="left">Ваш E-mail</div></td>
<td><div align="left">
<input type="text" name="e_mail" size="40" onfocus="this.style.background='#e0f7bd'" onblur="this.style.background='#ffffff'">
</div></td>
</tr>
<td valign="top" colspan="2" align="center"><table border="0" width="80%">
<tr>
<td align="center">
<p><font color="#008000"></font></td>
<td align="center">
</td>
<td align="center">
</tr>
</table></td>
<tr>
<td colspan="2">
<p align="center"><input type=submit value="Отправить" onClick="return checkEmail(document.contacts.e_mail.value)">
</td>
</tr>
</table>
</center>
</form>
</body>
</html>
Второй send.php скрипт получающий данные формы и отправляющий
эти данные на e-mail
<?
$name=$_POST['name'];
$subject=$_POST['theme'];
$e_mail=$_POST['e_mail'];
$headers=$_POST['headers'];
$message=$_POST['message'];
/* Адрес получателя*/
$toMail = 'receiver@mail.ru';
$headers = "From: $name <$e_mail> \n";
mail ("$toMail", "$subject",
"\nИмя : $name
E-mail : $e_mail
Тема сообщения : $subject
Подробнее : $message\n\n", "$headers");
?>
Пример далёк от совершенства, но даёт представление о том как это работает
|
|
30.11.2014, 08:38
|
Аспирант
|
|
Регистрация: 11.11.2014
Сообщений: 48
|
|
Сообщение от SeGun
|
Приведу 2 простых файла которые отправляют почту с сайта:
1й сама форма для отправки form.html
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript">
<html>
<head> </head>
<body>
function check(form)
{
if((form.name.value=="")||(form.theme.value=="")||(form.message.value=="")||(form.e_mail.value==""))
{
alert("Вы заполнили не все поля!");
return false;
}
else
return true;
}
</script>
<script language="javascript">
function checkEmail(inputvalue){
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
if(pattern.test(inputvalue))
{
return true;
}
else
{
alert("Вы неверно заполнили поле E-mail!");
return false;
}
}
</script>
<form name="contacts" method="POST" action="send.php" onsubmit="return check(contacts)">
<center>
<table class="name_fields">
<tr>
<td><div align="left">Ваше имя</div></td>
<td><div align="left">
<input type="text" name="name" size="40" onfocus="this.style.background='#e0f7bd'" onblur="this.style.background='#ffffff'">
</div></td>
</tr>
<tr>
<td><div align="left">Тема</div></td>
<td><div align="left">
<input type="text" name="theme" size="40" onfocus="this.style.background='#e0f7bd'" onblur="this.style.background='#ffffff'">
</div></td>
</tr>
<tr>
<td><div align="left">Сообщение</div></td>
<td><div align="left">
<textarea rows="10" name="message" cols="40" onfocus="this.style.background='#e0f7bd'" onblur="this.style.background='#ffffff'"></textarea>
</div></td>
</tr>
<tr>
<td><div align="left">Ваш E-mail</div></td>
<td><div align="left">
<input type="text" name="e_mail" size="40" onfocus="this.style.background='#e0f7bd'" onblur="this.style.background='#ffffff'">
</div></td>
</tr>
<td valign="top" colspan="2" align="center"><table border="0" width="80%">
<tr>
<td align="center">
<p><font color="#008000"></font></td>
<td align="center">
</td>
<td align="center">
</tr>
</table></td>
<tr>
<td colspan="2">
<p align="center"><input type=submit value="Отправить" onClick="return checkEmail(document.contacts.e_mail.value)">
</td>
</tr>
</table>
</center>
</form>
</body>
</html>
Второй send.php скрипт получающий данные формы и отправляющий
эти данные на e-mail
<?
$name=$_POST['name'];
$subject=$_POST['theme'];
$e_mail=$_POST['e_mail'];
$headers=$_POST['headers'];
$message=$_POST['message'];
/* Адрес получателя*/
$toMail = 'receiver@mail.ru';
$headers = "From: $name <$e_mail> \n";
mail ("$toMail", "$subject",
"\nИмя : $name
E-mail : $e_mail
Тема сообщения : $subject
Подробнее : $message\n\n", "$headers");
?>
Пример далёк от совершенства, но даёт представление о том как это работает
|
а без пхп вообще ни как? тоесть вообще если я его не знаю не хочу чтобы для меня не было, не поняток в коде.
|
|
30.11.2014, 09:16
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от kaflan
|
а без пхп вообще ни как?
|
Ну ставь ноду и пиши на js. Вобще на чем хошь на том и делай. Хоть на C++, хоть на Java
__________________
В личку только с интересными предложениями
|
|
30.11.2014, 09:53
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от kaflan
|
а без пхп вообще ни как? тоесть вообще если я его не знаю не хочу чтобы для меня не было, не поняток в коде.
|
используй mailto в надежде, что у пользователя установлен почтовый клиент и корректно задана ассоциация на почтовую программу по умолчанию
|
|
30.11.2014, 23:20
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Сообщение от kaflan
|
а без пхп вообще ни как?
|
Есть варианты с использованием google form и google docs, но подробностей не знаю. Пример использования. Попробуйте погуглить.
|
|
|
|