Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   Форма обратной связи (https://forum.antichat.xyz/showthread.php?t=99147)

CADE 02.01.2009 22:01

Форма обратной связи
 
Нужна хорошая форма обратной связи

выложите пожалуйста у кого какие есть :rolleyes:
есть ли такие с возможностью показа ip ? :confused:

спасибо :rolleyes:

nonamez 02.01.2009 22:04

http://woweb.ru/load/72 php
http://woweb.ru/load/105 java

Godfather Bulan 02.01.2009 22:13

блин))) раньше тоже еб**ся с этим вопросом! начал учить пхп и написал %)

CADE 03.01.2009 22:53

Цитата:

Сообщение от Godfather Bulan
блин))) раньше тоже еб**ся с этим вопросом! начал учить пхп и написал %)


Покаж? )) :rolleyes:

Nonamez спс ;)


Upтуально :rolleyes:

ФёдрПупкрв 03.01.2009 22:56

Цитата:

Сообщение от Godfather Bulan
блин))) раньше тоже еб**ся с этим вопросом! начал учить пхп и написал %)

точняк, покань.

baltazar 03.01.2009 23:11

Godfather Bulan,смысл в таких коментах?покажи готовы пример или нефиг зря ерунду писать

Scofild 03.01.2009 23:12

Держи. Скрипт с возможностью отправки вложений

Код:

<?php
session_start();
$admin = 'www@mail.ru';

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>Не заполнено поле "Имя"</li>';
  if ( empty( $email ) ) $error = $error.'<li>Не заполнено поле "E-mail"</li>';
  if ( empty( $subject ) ) $error = $error.'<li>Не заполнено поле "Тема"</li>';
  if ( empty( $message ) ) $error = $error.'<li>Не заполнено поле "Сообщение"</li>';
  if ( !empty( $email ) and !preg_match( "#^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,6}$#i", $email ) )
    $error = $error.'<li>поле "E-mail" должно соответствовать формату somebody@somewhere.ru</li>';
  if ( !empty( $error ) ) {
    $_SESSION['sendMailForm']['error']  = '<p>При заполнении формы были допущены ошибки:</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();
  }

  if ( !empty( $_FILES['file']['tmp_name'] ) and $_FILES['file']['error'] == 0 ) {
    $filepath = $_FILES['file']['tmp_name'];
    $filename = $_FILES['file']['name'];
  } else {
    $filepath = '';
    $filename = '';
  }
 
  $body = "АВТОР:\r\n".$name."\r\n\r\n";
  $body .= "E-MAIL:\r\n".$email."\r\n\r\n";
  $body .= "ТЕМА:\r\n".$subject."\r\n\r\n";
  $body .= "СООБЩЕНИЕ:\r\n".$message;
  $body .= "IP:\r\n".$REMOTE_ADDR;
  if ( send_mail($admin, $body, $email, $filepath, $filename) )
    $_SESSION['success'] = true;
  else
    $_SESSION['success'] = false;
  header( 'Location: '.$_SERVER['PHP_SELF'] );
  die();
}

// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($admin, $body, $email, $filepath, $filename)
{
  $subject = '=?windows-1251?B?'.base64_encode('Заполнена форма на сайте').'?=';
  $boundary = "--".md5(uniqid(time())); // генерируем разделитель
  $headers = "From: ".strtoupper($_SERVER['SERVER_NAME'])." <".$email.">\r\n";   
  $headers .= "Return-path: <".$email.">\r\n";
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
  $multipart = "--".$boundary."\r\n";
  $multipart .= "Content-type: text/plain; charset=\"windows-1251\"\r\n";
  $multipart .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";

  $body = quoted_printable_encode( $body )."\r\n\r\n";
 
  $multipart .= $body;
 
  $file = '';
  if ( !empty( $filepath ) ) {
    $fp = fopen($filepath, "r");
    if ( $fp ) {
      $content = fread($fp, filesize($filepath));
      fclose($fp);
      $file .= "--".$boundary."\r\n";
      $file .= "Content-Type: application/octet-stream\r\n";
      $file .= "Content-Transfer-Encoding: base64\r\n";
      $file .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
      $file .= chunk_split(base64_encode($content))."\r\n";
    }
  }
  $multipart .= $file."--".$boundary."--\r\n";

  if( mail($admin, $subject, $multipart, $headers) )
    return true;
  else
    return false;
}

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 ) );
}
?>


<?php
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 = '';
}

if ( isset( $_SESSION['success'] ) ) {
  if ( $_SESSION['success'] )
    echo '<p>Письмо успешно отправлено</p>';
  else
    echo '<p>Ошибка при отправке письма</p>';
  unset( $_SESSION['success'] );
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" enctype="multipart/form-data">
<table>
<tr><td>Имя:</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>Тема:</td><td><input type="text" name="subject" maxlength="64" value="<?php echo $subject ?>" /></td></tr>
<tr><td>Сообщение:</td><td><textarea name="message" rows="5" cols="30"><?php echo $message ?></textarea></td></tr>
<tr><td>Файл:</td><td><input type="file" name="file" /></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="sendMail" value="Отправить" /></td></tr>
</table>
</form>


rushter 03.01.2009 23:15

Цитата:

Сообщение от Godfather Bulan
блин))) раньше тоже еб**ся с этим вопросом! начал учить пхп и написал %)

Покажи.

Godfather Bulan 03.01.2009 23:15

ща покажу
registr_global=on должен быть вроде...
http://rapidshare.com/files/90792412/contact.rar

Godfather Bulan 03.01.2009 23:40

Форма
Код HTML:

<html>

<head>
</head>

<body>
<form action="obremail.php" method="POST">
Ваше имя:<br>
<input type="text" name="person">
<br>
Ваш e-mail:<br>
<input type="text" name="mail">
<br>
Ваш вопрос:<br>
<textarea name="question" cols=40 rows=5></textarea>
<br>
<input type="submit" name="okbutton" value="Отправить">
</form>
</body>
</html>

скрипт название у него должно быть obremail.php
не забудь сменить мыло!
PHP код:

<?
if (isset($_post['okbutton']))
{
$komu="mail@mail.ru";
$tema="Вопрос ".$_post['person']." ".$_post['mail'];
$text=$_post['question'];
mail($komu,$tema,$text);
echo 
"Отправлено";
}
?>

если скрипт выдает ошибку
PHP код:

if (isset($_post['okbutton']))
{


убери!
2 годa назад работал... на jino-net


Время: 21:17