Цитата:
Цитата:
|
Цитата:
|
Нужен параметр Action для формы, который передаст ваши переменные скрипту для отправки сообщения.
Разберитесь с работой form action submit и передачей параметров скрипту для отправки. |
Вроде бы то, что нужно файл 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); |
Отправка почты с сайта
Приведу 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"); ?> Пример далёк от совершенства, но даёт представление о том как это работает :) |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Есть вариант отправки и получения почты на Delphi если интересует :)
Но сам вопрос "отправка сообщений с сайта" подразумевает то, что для этого будет использоваться серверный язык. |
Цитата:
|
hardwolf, по умолчанию, если не указан в форме action, то принимать данные будет эта же страничка. Но если вы просматриваете код страницы в браузере, то серверных скриптов на обработку полученных данных не увидите. Однако, уверяю, что они там должны быть.
|
Как по мне удобнее всеже выносить скрипт обработчик в отдельный файл. Так легче его править. Иногда, например возникает задача параллельно с почтой отправить смс. удобно подправить и настроить скрипт отправки сообщения с сайта для менеджера.
|
Цитата:
Пока я просто создал два файла send.php и form.html . Положил оба файла в папку public_html и дал ссылку на файл с формой. Позже форму полностью перпепишу по своему, пока нужно узнать, будет ли это работать. Так вот .... пока не работает. Письмо себе отправил , но оно пока не дошло. Сколько нужно времени? Правильно ли я понимаю, что в php нужно всего-лишь поменять адрес получателя receiver@mail.ru' на свой? Сайт для себя создал на бесплатном хостинге hostinger . Это как то может влиять? P.S. К стати, хочу поблагодарить этот форум. Летом задал тут давольно-таки наивный вопрос, и получил на него подробный ответ. сейчас лень уже искать тему... но благодаря ВАМ не только простенькую игру сделал, но и сайт для себя написал (lada-chip.esy.es) С играми пока завязал, хочу сайт до ума довести постепенно. Прошу помощи. |
Цитата:
|
ага! вырезал из php кода всё что не понимаю. оставил только
<? mail ("почта@mail.ru", "zagol",$_POST['name']); ?> и письмо с именем пришло. Видимо, что-то не так со скриптом php из примера. Мне ещё не нравится, что после отправки письма я остаюсь на чистой странице . Но это не так страшно. |
Цитата:
|
Часовой пояс GMT +3, время: 03:34. |