Помогите с формой!!!!

Ответить
Аватара пользователя
skan

Помогите с формой!!!!

Сообщение skan »

Помогите начинающему. Написал форму, но при отправке данных запускает outlook. Как сделать так, что бы не появялся outlook и данные просто отправлялись на почту? Может скрипт какой? PHP не пользуюсь.
Аватара пользователя
vadimiron

Re: Помогите с формой!!!!

Сообщение vadimiron »

skan

А чем пользуетесь??
Аватара пользователя
Blast

Re: Помогите с формой!!!!

Сообщение Blast »

Я не помню уже где я взял пример этой формы, поэтому извините за отсутствие копирайтов. Пользуюсь очень давно, форма может и не самая простая, но в ней присутствует проверка заполненности полей, правильности их заполнения, с родного ли хоста запускается и т.д. Там проверки закомментированы, так что даже непосвященному не составит труда разобраться. Два кода: сама форма и файл настройки отправки. Код не правил в принципе, так что ненужные поля сами уберете, да и кол-во символов тоже поправите как понравится.



Форма

Код: Выделить всё

<TABLE WIDTH=600 class=td cellSpacing=1 cellPadding=0 BORDER=0>

<TR><TD>

<?



require ('config.inc');



if (isset($form))

{

    $error = ValidForm();

    

    if ($error[0] == '')

    {

        SendMail();

    }

    else

    {

        echo '<FONT COLOR=RED><B>Найдены следующие ошибки:</B><BR><BR>'.$error[0].'</FONT><BR>';

        ShowForm();

        echo '<BR></TABLE></CENTER>';

    }

}

else

{

    ShowForm();

}



function ShowForm()

{

    if((isset($GLOBALS["error"][0])) && ($GLOBALS["error"][0]!= ''))

    {

        $val[0] = $GLOBALS["form"]["user"];

        $val[1] = $GLOBALS["form"]["email"];

        $val[2] = $GLOBALS["form"]["comments"];

        $val[3] = $GLOBALS["form"]["adress"];

        $val[4] = $GLOBALS["form"]["company"];

        $val[5] = $GLOBALS["form"]["tel"];

    }

    else

    {

        $val[0] = $val[1] = $val[2] = '';

        $class[0] = $class[1] = $class[2] = '';

    }

    (isset($GLOBALS["error"][1])) ? $class[0] = ' class=error' : $class[0] = '';

    (isset($GLOBALS["error"][2])) ? $class[1] = ' class=error' : $class[1] = '';



?>

<CENTER><FORM>

<TABLE WIDTH=98% BORDER=0>

<TR>

    <TD colspan=2 align=center> </TD>

</TR>   



<TR>

        <TD colspan=2 align=center> </TD>

</TR>

<TR>

    <TD align=right>Название компании: </TD>

    <TD><INPUT<?=$class[4]?> TYPE=text SIZE=30 MAXLENGTH=40 NAME=form[company] VALUE='<?=$val[4]?>'></TD>

</TR>

<TR>

    <TD align=right>Контактное лицо: </TD>

    <TD><INPUT<?=$class[0]?> TYPE=text SIZE=30 MAXLENGTH=40 NAME=form[user] VALUE='<?=$val[0]?>'></TD>

</TR>

<TR>

    <TD align=right>Адрес компании: </TD>

    <TD><INPUT<?=$class[3]?> TYPE=text SIZE=30 MAXLENGTH=40 NAME=form[adress] VALUE='<?=$val[3]?>'></TD>

</TR>

<TR>

    <TD align=right>Контактный телефон: </TD>

    <TD><INPUT<?=$class[5]?> TYPE=text SIZE=30 MAXLENGTH=15 NAME=form[tel] VALUE='<?=$val[5]?>'></TD>

</TR>

<TR>

    <TD align=right>Ваш e-mail: </TD>

    <TD><INPUT<?=$class[1]?> TYPE=text SIZE=30 MAXLENGTH=25 NAME=form[email] VALUE='<?=$val[1]?>'></TD>

</TR>

<TR>

    <TD valign=top align=right>Дополнительная информация: <BR></TD>

    <TD><TEXTAREA<?=$class[2]?> NAME=form[comments] ROWS=70 COLS=135><?=$val[2]?></TEXTAREA></TD>

    </TR>

<TR>

        <TD colspan=2 align=center><b><color:#9c0000>Все поля кроме дополнительной информации обязательны к заполнению!</color></b><BR></TD>

</TR>

<TR><TD align=right>

<INPUT TYPE=reset VALUE=Отмена class=but> </TD><TD colspan=2>

<INPUT TYPE=submit VALUE='Отправить' class=but></TD></TR>

</TABLE></FORM>

<?

}



function ValidForm()

{



$error[0] = '';



/* проверяем с родного-ли хоста пришли данные */

$referer = getenv("SERVER_NAME");

    if (!ereg($GLOBALS["SERVER"],$referer))

        {

//        echo "<BR><BR><BR><CENTER><IMG SRC='img/trash.gif'><BR><BR><B><P><FONT COLOR=RED>Доступ закрыт!<BR><BR>Вход только через <A HREF='http://".$GLOBALS["SERVER"]."'>".$GLOBALS["SERVER"]."</A><BR><BR><BR>";

//        exit;

        }



/* проверяем не ввел-ли кто фигню типа длинного слова skghsdghfdhgkfdhgkhdfkghdfkghdfkghfdjghfjghfghjfhgfdhgkdfhhkfhgkfhgkh */

$array = explode (" ", $GLOBALS["form"]["comments"]);

foreach ($array as $word)

    if (strlen($word) > 30)

    {

        $word = trim (str_replace("\r\n", "", $word));

        $error[0] .= " Слишком длинное слово: ( <FONT COLOR='BLUE'><B>".htmlspecialchars($word)."</B></FONT> ). До или после нажатия <enter> необходим пробел.<BR>";

        $error[3] = 1;

    }



else // проверяем на минимум символов

    {

        if (strlen($GLOBALS["form"]["user"]) < 3)                   

        {

            $error[0] .= ' Слишком мало символов в поле Имя!<BR>';

            $error[1] = 1;

        }

        if (strlen($GLOBALS["form"]["adress"]) < 5)

        {

            $error[0] .= ' Слишком мало символов в поле Адрес!<BR>';

            $error[3] = 1;

        }

        if (strlen($GLOBALS["form"]["tel"]) < 11)

        {

            $error[0] .= ' Слишком мало символов в поле Телефон!<BR>';

            $error[3] = 1;

        }

    }



/* обрезаем все данные до нужной длины (на всякий случай) */

$GLOBALS["form"]["user"] = trim(substr($GLOBALS["form"]["user"],0,25));

$GLOBALS["form"]["email"] = trim(substr($GLOBALS["form"]["email"],0,25));

$GLOBALS["form"]["comments"] = trim(substr($GLOBALS["form"]["comments"],0,300));



/* проверяем правильность e-mail */

if ((!ereg("^[a-z0-9_\.-]+@([a-z0-9][a-z0-9-]+\.)+[a-z]{2,4}$", $GLOBALS["form"]["email"])) && (trim($GLOBALS["form"]["email"]) != ''))

    {

        $error[0] .= ' Неверный адрес e-mail.<BR>';

        $error[2] = 1;

    }



/* если есть HTML - вырубаем */

$html = ' Подобные символы запрещены - ';

if ( ereg ( "[<>&]+", $GLOBALS["form"]["user"], $error_1 ) ) 

    {

        $error[0] .= $html.'( <FONT COLOR=BLUE>'.htmlspecialchars($error_1[0]).'</FONT> )<BR>';

        $error[1] = 1;

    }



if ( ereg ( "[<>&]+", $GLOBALS["form"]["comments"], $error_3 ) )

    {   

        $error[0] .= $html.'( <FONT COLOR=BLUE>'.htmlspecialchars($error_3[0]).'</FONT> )<BR>';

        $error[3] = 1;

    }

return $error;

}



function SendMail()

{

    $post = $GLOBALS["form"]["user"]." написал(а):\n\n";

    $post .= "\nКомпания:".$GLOBALS["form"]["company"]."\nАдрес:".$GLOBALS["form"]["adress"]."\nКонтактный телефон:".$GLOBALS["form"]["tel"]."\ne-mail:".$GLOBALS["form"]["email"]."\nДополнительная информация:". $GLOBALS["form"]["comments"];

    @mail($GLOBALS["ADMIN"],

        $GLOBALS["SUBJECT"],

        $post);

    echo '<CENTER><BR>'.$GLOBALS["form"]["user"].', Ваше сообщение успешно отправлено.<BR><BR>';

}



?>

</TD></TR>

</TABLE>


Отправка (config.inc) :

Код: Выделить всё

<?

$SUBJECT = "тема письма"; 

$ADMIN = "mail@mail.com"; // замените на свое мыло

$SERVER = 'somehost.com'; // замените на имя Вашего сервера (ВАЖНО! без http:// )

?>
Ответить

Вернуться в «Вебмастеру»