Jump to content
  • 0

помогите со скриптом - нужна простенькая форма, чтобы заполненные в н


vovchikku
 Share

Question

помогите со скриптом - нужна простенькая форма, чтобы заполненные в нем пользователем данные отправлялись на email.

form name="form2" method="post" action="mailto:arb-everest@yandex.ru" enctype="text/plain"

p

input name="textfield" type="text" value="" size="100"

Фамилия, Имя, Отчество /p

p

input name="textfield2" type="text" value="" size="100"

/p

p

input type="submit" name="Submit" value="Submit"

вот приблизительно что я хочу...

http://www.wsugra.ru/recruting/form-worker.htm

но ничего не получается . браузер после нажатия в какую то конфигурацию лезет...

заранее очень признателен

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Если SMTP сервер не требует аутентификации, что вряд ли, то подойд?т mail(), иначе, phpmailer либо другой класс для отправки сообщений. Вот настройки для phpmailer. Этот кусок кода нужно вставить в обработчик формы.

<?php
$name="Имя отправителя";
$sub="Тема письма";
$mess="Письмо";
$from="Ваш адрес";

$to="Адрес получателя";
/*Конвертация кодировок*/
$sub = iconv('WINDOWS-1251', 'koi8-r', $sub);
$mess = iconv('WINDOWS-1251', 'koi8-r', $mess);
$name = iconv('WINDOWS-1251', 'koi8-r', $name);

require("phpmailer/class.phpmailer.php"); // укажите путь к файлу class.phpmailer.php
$mail = new PHPMailer();
$mail->IsSMTP();// отсылать используя SMTP
$mail->CharSet = "koi8-r";//Кодировка
$mail->Encoding = "8bit";//8-битное кодирование.
$mail->Host = "Название сервера"; // SMTP сервер
$mail->SMTPAuth = true; // включить SMTP аутентификацию
$mail->Username = "login"; // SMTP логин
$mail->Password = "password"; // SMTP пароль
$mail->From = $from; // укажите от кого письмо
$mail->FromName =$name; // имя отправителя
$mail->AddAddress($to); // е-мэил кому отправлять
$mail->AddReplyTo("адрес"); // е-мэил того кому прейдет ответ на ваше письмо
$mail->WordWrap = 50;// set word wrap
$mail->IsHTML(true);// отправить в html формате

$mail->Subject = $sub; // тема письма
$mail->Body = $mess; // тело письма в html формате

if(!$mail->Send())
{
echo "Письмо не отправлено ";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Письмо отправлено";
?>

Правда если ты не знаком с РНР, то эти настройки тебе не помогут, потому что нужно еще писать обработчик формы.

Link to comment
Share on other sites

  • 0

Нафиг все эти муки, вот у меня форма:

Посмотреть.

Я использовал функцию mail()

Вот код:

<?
$seenform = $_POST["seenform"];
$recipient = $_POST["recipient"];
$subject = $_POST["subject"];
$name= $_POST["name"];
$email= $_POST["email"];
$comments = $_POST["comments"];

$form = "
<form action="contact.php" method="post">
<input type="hidden" name="seenform" value="y">
<table>
<tr><td>Ваше имя:</td><td><input type="text" name="name" size="30" maxlength="20" value=""></td></tr>
<tr><td>Ваш e-mail адрес:</td><td><input type="text" name="email" size="30" maxlength="40" value=""></td></tr>
<tr><td>Тема сообщения:</td><td><input type="text" name="subject" size="30" maxlength="40" value=""></td></tr>
<tr><td>Ваше сообщение:</td><td><textarea name="comments" rows="6" cols="45"></textarea></td></tr>
<tr><td><input type="submit" value="Отправить"></td></tr>
</table>
</form>
";

if ($seenform != "y") :
print "$form";
else :
$recipient = "Получатель";
// Тема сообщения
$subject = "$subject";
// Дополнительные заголовки
$headers = "From: $email";
// Отправить сообщение или выдать сообщение об ошибке
mail($recipient, $subject, $comments, $headers) or die("Could not send email!");
// Вывести сообщение для пользователя
print "Сообщение отправлено!";

endif;
?>

Все долно работать.

Link to comment
Share on other sites

  • 0

2vvs, Функция mail() будет работать только в том случае, если smtp сервер не требует аутентификации. А это встречается не на всех серверах. Данный класс я проверял на бесплатном ayola.net и на Агаве. Везде работает. А вот mail() ни на том, ни на другом.

вогт это интересно...попробую вставить. Это прям в body вставляется, без изменений?

Вам нужно рнр с нуля учить. Потому как ни в body, а в обработчик формы.

Link to comment
Share on other sites

  • 0

пример кода который работает отлично у меня

форма в файле хтмл

<form action="send_foto.php" method="post" name="f2">

<p>Ваше имя:<br><input type="text" size="100" width="500" name="name"></p>

<p>Ваш e-mail:<br><input width="500" size="100" type="text" name="email"></p>

<p>Ваш контактный телефон:<br><input type="text" width="500" size="100" name="kont"></p>

<p><input type="submit" value="     ОТПРАВИТЬ ЗАПРОС     "></p>

</form>

php скрипт (send_foto.php)

<?php

$name = $_POST['name'];

$email = $_POST['email'];

$kont = $_POST['kont'];

$adres = "ваша почта@inbox.ru";

$subject = "Запрос на фотоуслуги";

$mes = "Автор назвался ".$name."\nУказал свой адрес: ".$email."\nКонтактный телефон: ".$kont."";

$verify = mail ($adres,$subject,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");

if ($verify == 'true')

{

echo("<script>location.href='ваша страница если отправлено.html'</script>");

}

else

{

echo("<script>location.href='ваша страница если неотправлено.html'</script>");

}

?>

Edited by elvis79
Link to comment
Share on other sites

  • 0

$verify = mail ($adres,$subject,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
...

как все запущено... сразу видно что вы не знакомы с основными типами данных. Функция mail, возвращает bool, тобишь или true или false. а true/false пишутся без кавычек! поэтому ваш скрипт не будет работать. правильней сделать так.

$from="Content-type:text/plain; charset = windows-1251\r\nFrom:$email";
if(mail($adres, $subject, $mes, $from))

P.S. и кстати, просто тег скрипт без параметров, некоторые браузеры не поддерживают. и поэтому..

echo <<<END
<script type="text/javascript">
window.location = 'index.html'
</script>
END;

Edited by Pavel_html
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy