Известно, что модуля формы в free версии нет, в ерсии 3.2 я выходил из этой ситуации при помощи страниц добавления постов в гостевую книгу например, все ручками происываешь и работает на ура, не много не удобно, но работает, сегодня начал делать подобное в версии 4 и сталкнулся с тем что такая же фишка уже не прокатит, т.к. id дополнительных полей прописываются только в структуре сайта, судя по тому что там уже по дефолту прописаны автор и e-mail а туда уже ничего не добавишь.
Короче есть какой то другой способ добавления полей при постинге соощения в версии 4?
Я лично, кроме того что взять динамическую страницу из версии 3.2, не нашел.
И сразу еще один вопрос, опять таки по формам, захотел прицепить форма обратной связи (сторонний скрипт), короче самая обычная форма, отсылаются данные на файл mail.php для обработки, а вместо страницы типа ваше сообщение отправлено, выдается только белый экран, подскажите как прицепить скрипт?
Форма отправки:
<form action="/mail.php" method="post">
<table cellpadding="0" cellspacing="0" border="0">
<tr valign="top">
<td height="24"> Ваше имя:</td><td><input type="text" name="username" size="35" maxlength="30" /></td></tr>
<tr valign="top">
<td height="24"> Ваш E-mail:</td><td><input type="text" name="mailfrom" size="35" maxlength="30" /></td></tr>
<tr valign="top">
<td> Текст сообщения:</td><td><textarea cols="30" rows="10" name="question"></textarea></td></tr>
<tr>
<td height="30"></td><td align="right"><input type="submit" name="ok" value="Отправить" /></td></tr></table>
</form>
Вот сам скрипт:
<?
$mailto="MAIL"; //Ваш E-mail
// Больше ничего менять не надо
Error_Reporting(E_ALL & ~E_NOTICE);
$ip=$GLOBALS['REMOTE_ADDR'];
$mailfrom=$_POST['mailfrom'];
$mailfrom=substr($mailfrom,0,25);
$username=$_POST['username'];
$username=substr($username,0,25);
if (empty($ok))
{
?>
<?
}
else
{
if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/",$username))
{
$error = "<center><div style='background: #BABABA;
width:500px; height:auto; padding: 5px 5px 5px 5px; text-align:center; vertical-align:middle;'>Не верно заполнено поле: <strong>Ваше имя</strong><br />";
}
if(!preg_match("/^([a-z,0-9,_,.])+\@([a-z,0-9])+(\.([a-z,0-9])+)+$/", $mailfrom))
{
$error = "<center><div style='background: #BABABA;
width:500px; height:auto; padding: 5px 5px 5px 5px; text-align:center; vertical-align:middle;'>Не верно заполнено поле: <strong>Ваш E-mail</strong><br />";
}
if (empty($question))
{
$error .= "<center><div style='background: #BABABA;
width:500px; height:250px; padding: 5px 5px 5px 5px; text-align:center; vertical-align:middle;'>Не заполнено поле: <strong>Текст сообщения</strong><br />
";
}
if ($error)
{
echo $error;
echo "<a href=\"javascript:history.go(-1)\" class=\"text\">Вернуться назад</a></div></center>";
exit;
}
$subject="Письмо с сайта от $username";
$body="Имя:\n$username\n\nE-mail:\n$mailfrom\n\nТекст сообщения:\n$question\n\n IP: $ip\n\n";
$sucess = mail($mailto, $subject, $body, "From: $mailfrom\nX-Mailer: PHP/" . phpversion());
if ($sucess)
{
echo "<center><div style='background: #BABABA;
width:500px; height:auto; padding: 5px 5px 5px 5px; text-align:center; vertical-align:middle;'>Ваше сообщение отправлено<br /><br />";
echo "Через 3 секунды Вы будете перенаправлены на главную страницу сайта.</div></center>";
?>
<meta http-equiv="refresh" content="3;URL=/">
<?
}
}
?>