Zaloguj | Zarejestruj | FAQ
Anonymous

Помогите с формой отправки сообщений!

+ Odpowiedz

Posty: 3 Strona 1 z 1


Помогите с формой отправки сообщений!

przez rodionvd » Pt lut 01, 2013 7:44 pm

Привет всем!
Ребят помогите с формой отправки сообщений! Нужно чтобы надпись 'Сообщение отправлено' открывалась в родительском окне, а не в новом! И еще как сделать проверку полей на корректность ввода? Есть такой код:

index.html
Kod: Zaznacz cały
<form action="action.php" method="post">
<input type="text" name="name" value="Имя" class="placeholder"/>
<input type="text" name="email" value="E-mail" class="placeholder"/>
<textarea name="message" class="placeholder">Сообщение</textarea>
<input type="submit" name="send"
value="Отправить" class="light1"/>
                                                                          
                                            </form>

и action.php
Kod: Zaznacz cały
<?php

if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['message'])) {$message = $_POST['message'];}

$address = "rodionvd@yandex.ru";
$mes = "Имя: $name \nE-mail: $email \nТекст: $message";
$send = mail ($address,$message,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($send == 'true')
{
'Сообщение отправлено'
}
else
{
'Сообщение не отправлено'
}
?>
Avatar użytkownika

rodionvd

  • Posty: 7
  • Dołączył(a): Pt lut 01, 2013 7:38 pm
--
Частный вебмастер. Море качественных, структурированных видеоуроков - http://vk.com/club50152457

Re: Помогите с формой отправки сообщений!

przez XainPro » Pn lut 04, 2013 9:20 am

<?php
$haveError = false;
if (isset($_POST['name'])) {$name = $_POST['name'];}
else { $haveError = true;}
if (isset($_POST['email'])) {$email = $_POST['email'];}
else { $haveError = true;}
if (isset($_POST['message'])) {$message = $_POST['message'];}
else { $haveError = true;}

$address = "rodionvd@yandex.ru";
$mes = "Имя: $name \nE-mail: $email \nТекст: $message";
if($haveError = false) {
$send = mail ($address,$message,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($send == 'true')
{
echo 'Сообщение отправлено';
}
else
{
echo 'Сообщение не отправлено';
}
}
else {
echo 'Error Please Fill all fields';
}
?>
Avatar użytkownika

XainPro

  • Posty: 3933
  • Dołączył(a): Pt lut 17, 2012 8:10 pm

Re: Помогите с формой отправки сообщений!

przez websonick » Wt lut 05, 2013 2:34 pm

<?php
session_start();
$admin = 'admin@domain.com';

if ( isset( $_POST['sendMail'] ) ) {
$name = substr( $_POST['name'], 0, 64 );
$email = substr( $_POST['email'], 0, 64 );
$subject = substr( $_POST['subject'], 0, 64 );
$message = substr( $_POST['message'], 0, 250 );

$error = '';
if ( empty( $name ) ) $error = $error.'<li>Please enter "Name"</li>';
if ( empty( $email ) ) $error = $error.'<li>Please enter "E-mail"</li>';
if ( empty( $subject ) ) $error = $error.'<li>Please enter "Theme"</li>';
if ( empty( $message ) ) $error = $error.'<li>Please enter "Message"</li>';
if ( !empty( $email ) and !preg_match( "#^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,6}$#i", $email ) )
$error = $error.'<li>field "E-mail" should follow the format yourname@domain.com</li>';
if ( !empty( $error ) ) {
$_SESSION['sendMailForm']['error'] = '<p>When filling out the form mistakes were made:</p><ul>'.$error.'</ul>';
$_SESSION['sendMailForm']['name'] = $name;
$_SESSION['sendMailForm']['email'] = $email;
$_SESSION['sendMailForm']['subject'] = $subject;
$_SESSION['sendMailForm']['message'] = $message;
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}

$body = "AUTHOR:\r\n".$name."\r\n\r\n";
$body .= "E-MAIL:\r\n".$email."\r\n\r\n";
$body .= "THEME:\r\n".$subject."\r\n\r\n";
$body .= "MESSAGE:\r\n".$message;
$body = quoted_printable_encode( $body );

$theme = '=?windows-1251?B?'.base64_encode('Fill out the form online Sonick-ex').'?=';
$headers = "From: ".$_SERVER['SERVER_NAME']." <".$email.">\r\n";
$headers = $headers."Return-path: <".$email.">\r\n";
$headers = $headers."Content-type: text/plain; charset=\"windows-1251\"\r\n";
$headers = $headers."Content-Transfer-Encoding: quoted-printable\r\n\r\n";

if ( mail($admin, $theme, $body, $headers) )
$_SESSION['success'] = true;
else
$_SESSION['success'] = false;
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}

function quoted_printable_encode ( $string ) {
// rule #2, #3 (leaves space and tab characters in tact)
$string = preg_replace_callback (
'/[^\x21-\x3C\x3E-\x7E\x09\x20]/',
'quoted_printable_encode_character',
$string
);
$newline = "=\r\n"; // '=' + CRLF (rule #4)
// make sure the splitting of lines does not interfere with escaped characters
// (chunk_split fails here)
$string = preg_replace ( '/(.{73}[^=]{0,3})/', '$1'.$newline, $string);
return $string;
}

function quoted_printable_encode_character ( $matches ) {
$character = $matches[0];
return sprintf ( '=%02x', ord ( $character ) );
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Send Mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>

<?php
if ( isset( $_SESSION['success'] ) ) {
if ( $_SESSION['success'] )
echo '<p>A letter has been sent successfully</p>';
else
echo '<p>Error sending emails</p>';
unset( $_SESSION['success'] );
}
if ( isset( $_SESSION['sendMailForm'] ) ) {
echo $_SESSION['sendMailForm']['error'];
$name = htmlspecialchars ( $_SESSION['sendMailForm']['name'] );
$email = htmlspecialchars ( $_SESSION['sendMailForm']['email'] );
$subject = htmlspecialchars ( $_SESSION['sendMailForm']['subject'] );
$message = htmlspecialchars ( $_SESSION['sendMailForm']['message'] );
unset( $_SESSION['sendMailForm'] );
} else {
$name = '';
$email = '';
$subject = '';
$message = '';
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<table>
<tr><td>Name:</td><td><input type="text" name="name" maxlength="64" value="<?php echo $name ?>" /></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email" maxlength="64" value="<?php echo $email ?>" /></td></tr>
<tr><td>Theme:</td><td><input type="text" name="subject" maxlength="64" value="<?php echo $subject ?>" /></td></tr>
<tr><td>Message:</td><td><textarea name="message" rows="5" cols="30"><?php echo $message ?></textarea></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="sendMail" value="Send Message" /></td></tr>
</table>
</form>

</body>
</html>

Ставь всё это в PHP файле(feedback.php)
И в места admin@domain.com пиши тот меил на котором будет выслана сообщения
Avatar użytkownika

websonick

  • Posty: 1
  • Dołączył(a): Wt lut 05, 2013 2:27 pm


+ Odpowiedz

Strona 1 z 1