Вопрос про формы.

#
Вопрос про формы.
Народ, подскажите, пожалуйста, как организовать простейший вариант отправки формы на e-mail. Версия Free. Знаний 0.0001. Если есть возможность, объясните на пальцах плиз.
#
Re: Вопрос про формы.
Видимо мысли стекаются..

http://www.hostcms.ru/forums/22/980/
#
Re: Вопрос про формы.
Мысли это когда понимаешь... в моем случае полная непонятка. В той ветке толком непонял и половины. В версии FREE формы отключены.
#
Re: Вопрос про формы.
вручную писать обработчик формы ( в данном случае - типовую динамическую страницу)
Если будут вопросы - пиши в аську, расскажу подробнее
#
Re: Вопрос про формы.
я с радость... а номер аськи....
#
Re: Вопрос про формы.
333449993
#
Re: Вопрос про формы.
ну ребят надо заканчивать вопрос то хоть подробней написали бы
#
Re: Вопрос про формы.
Расписываю как я сделал у себя на сайте http://www.smsku.ru/feedback/
Узел структуры----->новая структура---->Динамическая страница и следующий код


<?php
function show_form()
{
?>
<form action="" method="post">
<table class="link_table" border="0" cellspacing="0" cellpadding="7" width="100%" bgcolor="#eeeeee">
<tbody>
<tr>
<td align="right" valign="middle"><strong>Ваше имя<span class="style9">*</span>:</strong></td>
<td><input id="name" name="name" size="40" type="text" /></td>
</tr>
<tr>
<td align="right" valign="middle"><strong>Ваш телефон<span class="style9">*</span>:</strong></td>
<td><input id="age" name="tel" size="40" type="text" /></td>
</tr>
<tr>
<td align="right" valign="middle"><strong>E-mail <span class="style9">*</span>:</strong></td>
<td><input id="email" name="email" size="40" type="text" /></td>
</tr>
<tr>
<td align="right" valign="middle"><strong>Тема <span class="style9">*</span>:</strong></td>
<td><input id="email" name="title" size="40" type="text" /></td>
</tr>
<tr>
<td align="right" valign="top"><strong>Ваше сообщение<span class="style9"> *</span>:</strong></td>
<td><textarea id="comments" cols="35" rows="7" name="mess"></textarea> <input id="confirm" name="confirm" type="hidden" value="yes" /></td>
</tr>
<br />
<td align="right" valign="top"><strong><input type="submit" value="Отправить" name="submit"></span></strong></td>
</tbody>
</table>
<p><strong class="style9">*</strong> — поля, обязательные для заполнения.</p>
<p>Телефон в международном формате </p>
</form>
<?
}

function complete_mail() {
        // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
        $_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 5, 1000);
        $_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 10, 1000000);
        $_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 4, 30);
        $_POST['tel'] =  substr(htmlspecialchars(trim($_POST['tel'])), 9, 30);
        $_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 3, 50);
       // если не заполнено поле "Имя" - показываем ошибку 0
        if (empty($_POST['name']))
             output_err(0);
        //         если неправильно заполнено поле email - показываем ошибку 1
        if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
             output_err(1);
        // если не заполнено поле "Сообщение" - показываем ошибку 2
        if(!preg_match("/[а-я_]+[а-я_]+[а-я]{2,3}/i", $_POST['mess']))
             output_err(2);
     // если не заполнено поле "Контактный телефон" - показываем ошибку 3
         if(!preg_match("/[0-9_]+[0-9_]/i", $_POST['tel']))
             output_err(3);
        // создаем наше сообщение
        $mess = '
Имя отправителя:'.$_POST['name'].'
Контактный телефон:'.$_POST['tel'].'
Контактный email:'.$_POST['email'].'
'.$_POST['mess'];
        // $to - кому отправляем
        $to = 'Ваше мыло';
        // $from - от кого
        $from='Мыло';
        mail($to, $_POST['title'], $mess, "From:".$from);
        echo 'Спасибо! Ваше письмо отправлено.';
}

function output_err($num)
{
    $err[0] = 'ОШИБКА! Не введено имя.';
    $err[1] = 'ОШИБКА! Неверно введен e-mail.';
    $err[2] = 'ОШИБКА! Не введено сообщение.';
    $err[3] = 'ОШИБКА! Не введен телефон.';
    echo '<p>'.$err[$num].'</p>';
    show_form();
    exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>


Экспериментируем и наслаждаемся. Если кто знает как к этому прицепить капчу то будет очень хорошо. Пускай поделится.
#
Re: Вопрос про формы.
Это не работает. Выдает ошибки. Поделитесь, а .... плиииз! Уже столько форм перепробовано. То ошибки, то кодировка, то еще что...Напишите, пож. что надо вставить в эту динамическую страницу. Пожалейте не просто чайника... но чайника женского пола, а?!!!! Можно в личку, если тут не хотите gruavxng@znvy.eh!
#
Re: Вопрос про формы.
подправил чуток код от kyljapin
<?php

function show_form()

{

?>

<form action="" method="post">

<table class="link_table" border="0" cellspacing="0" cellpadding="7" width="100%" bgcolor="#eeeeee">

<tbody>

<tr>

<td align="right" valign="middle"><strong>Ваше имя<span class="style9"> *</span>:</strong></td>

<td><input id="name" name="name" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>Ваш телефон<span class="style9">*</span>:</strong></td>

<td><input id="age" name="tel" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>E-mail <span class="style9">*</span>:</strong></td>

<td><input id="email" name="email" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>Тема <span class="style9">*</span>:</strong></td>

<td><input id="email" name="title" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="top"><strong>Ваше сообщение<span class="style9"> *</span>:</strong></td>

<td><textarea id="comments" cols="35" rows="7" name="mess"></textarea> <input id="confirm" name="confirm" type="hidden" value="yes" /></td>

</tr>

<br />

<td align="right" valign="top"><strong><input type="submit" value="Отправить" name="submit"></span></strong></td>

</tbody>

</table>

<p><strong class="style9">*</strong> — поля, обязательные для заполнения.</p>

<p>Телефон в международном формате </p>

</form>

<?

}



function complete_mail() {

// $_POST['title'] содержит данные из поля "Тема", trim() — убираем все лишние пробелы и переносы строк,
// htmlspecialchars() — преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие
// попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) — урезаем текст до 1000 символов. Для
// переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично

$_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 5, 1000);

$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 10, 1000000);

$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 4, 30);

$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 9, 30);

$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 3, 50);

// если не заполнено поле "Имя" — показываем ошибку 0

if (empty($_POST['name']))

output_err(0);

// если неправильно заполнено поле email — показываем ошибку 1

if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))

output_err(1);

// если не заполнено поле "Сообщение" — показываем ошибку 2

if(!preg_match("/[а-я_]+[а-я_]+[а-я]{2,3}/i", $_POST['mess']))

output_err(2);

// если не заполнено поле "Контактный телефон" — показываем ошибку 3

if(!preg_match("/[0-9_]+[0-9_]/i", $_POST['tel']))

output_err(3);

// создаем наше сообщение

$mess = '

Имя отправителя:'.$_POST['name'].'

Контактный телефон:'.$_POST['tel'].'

Контактный email:'.$_POST['email'].'

'.$_POST['mess'];

// $to — кому отправляем

$to = 'Ваше мыло';

// $from — от кого

$from='Мыло';

mail($to, $_POST['title'], $mess, "From:".$from);

echo 'Спасибо! Ваше письмо отправлено.';

}



function output_err($num)

{

$err[0] = 'ОШИБКА! Не введено имя.';

$err[1] = 'ОШИБКА! Неверно введен e-mail.';

$err[2] = 'ОШИБКА! Не введено сообщение.';

$err[3] = 'ОШИБКА! Не введен телефон.';

echo '<p>'.$err[$num].'</p>';

show_form();

exit();

}



if (!empty($_POST['submit'])) complete_mail();

else show_form();

?>
Авторизация