Показать сообщение отдельно
Старый 23.12.2003, 00:18     # 45
smap
Junior Member
 
Аватар для smap
 
Регистрация: 14.10.2002
Адрес: Samara
Сообщения: 84

smap Путь к славе только начался
вот оно =)))
2 фала первый php другой html-типо шаблон.

HTML:
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<
html>
<
title>.:: Связь с Редколлегией ::.</title>
<
meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<
body>

<
form enctype="multipart/form-data" method=post >
  <
table class="form" width="100%" border="0" style="margin-left:0; margin-top: 5; margin-right: 0; margin-bottom: 0;">
    
$errors[to]
    <
tr>
      <
td>Кому</td>
      <
td><select name="to">
          <
option value="0" $selected[1]>Пастух (Главный Редактор)
        <
option value="1" $selected[2]>Neo (Вебмастер)
        <
option value="2" $selected[3]>Багире (Модератор)
        <
option value="3" $selected[4]>Волкодаву (Модератор)
         </
select>
      </
td>
    </
tr>
    
$errors[subject]
    <
tr>
      <
td >Тема</td>
      <
td ><input name="subject" type="text"  size="50" value="$subject"></td>
    </
tr>
    
$errors[from]
    <
tr>
      <
td >Ваш e-mail</td>
      <
td ><input name="from" type="text"  size="50" value="$from"></td>
    </
tr>
    
$errors[file]
    <
tr>
      <
td >Приложение</td>
      <
td ><input name="file" type="file"  size="50"><br>
    <
font size=1 color=red>Допустимые форматы файлов:</font><font size=1jpggifpngdoctxt</font></td>
    </
tr>
    
$errors[text]
    <
tr>
      <
td valign="top" >Сообщение<br><font color=red><br>Пожалуйстаукажите свое имя <br>
в качестве первой строки сообщения.<p style="margin-left:0" align=justify>
Пользуйтесь данной формой только в тех случаяхкогда вам необходимо отправить аттачмент.
В противном случае выберите из следующего меню того
с кем вам нужно связаться:</font><br><br>
<
a href="../../../../contacts/emailred/form.html" target="_self"><u>Пастух (ГлРедактор)</u></a>
<
br><a href="../../../../contacts/emailweb/form.html" target="_self"><u>Neo (Вебмастер)</u></a>
<
br><a href="../../../../contacts/emailbag/form.html" target="_self"><u>Багира (Модератор)</u></a>
<
br><a href="../../../../contacts/emailvol/form.html" target="_self"><u>Волкодав (Модератор)</u></a></font></td>
      <
td rowspan="2" ><textarea name="text" cols="30" rows="15">$text</textarea></td>
    </
tr>
    <
tr>
      <
td valign="bottom" align="center" ></td>
    </
tr>
    <
tr>
      <
td valign="middle" align="center" ><input name="submit" type="submit"  value="  Послать  "></td>
      <
td align=center><font color="#FF0000">Все</fontполя обязятельны!</td>
    </
tr>
  </
table>
<
br>
</
form>
</
html

PHP:
PHP код:
<?php
 $tmp_name 
"neo.html";
 
// Являится ли строка синтаксически
 // правельным адресом электроной почты

 
function check_email($string) {
    
$string trim($string);
    
$ret ereg(
                
'^([a-z0-9_]|\\-|\\.)+'.
                
'@'.
                
'(([a-z0-9_]|\\-)+\\.)+'.
                
'[a-z]{2,4}$',
                
$string);
     return 
$ret;
 }

 
// Это JPG GIF PNG DOC TXT?

 
function check_file($file) {
    
$ret ereg("([a-z0-9_]|\\-)+\\.(jpg|gif|png|doc|txt)$"$file);
    return 
$ret;
 }

 
// Проверяет строку на минимальную и максимальную длину

 
function check_length($string$min_length$max_length) {
    
$str_length strlen($string);
    if(
$str_length $min_length || $str_length $max_length) return false;
    return 
true;
 }

// Проверяем, нажата ли кнопка отправить

function html_error($error) {
 return(
"<tr align=\"Right\"><td colspan=\"2\">$error</font></td></tr>");
 }

// отправлина ли форма?
if(@$submit) {
    
// инцилизация масивов ошибок
    
$errors = array();
  
// так навсякий, а в друг?
  
if(!empty($to)) $errors[to] = html_error("И кому это вы собрались отправлять письмо?");

 
// Проверка "Темы" на длину
 
if(!empty($subject)) {
 if(!
check_length($subject330))
    
$errors[subject] = html_error("Тема должна быть не мене 3-x символов, и не более 30-ти!");
 } else  
$errors[subject] = html_error("Вы не заполнили поле \"Тема\"");
 
// Проверка "Мыла" на ситаксис :)
 
if(!empty($from)) {
 if(!
check_email($from))
    
$errors[from] = html_error("Не правильно введен E-mail, он должен быть вида [email]name@host.zone[/email]!");
 } else  
$errors[from] = html_error("Вы не заполнили поле \"Мыло\"");
  
// Проверка "Текста" на длину
 
if(!empty($text)) {
 if(!
check_length($text,2500)) {
   
$errors[text] = html_error("Тест должен быть не мене 2-x символов, и не более 500-та!");
    }
 } else  
$errors[text] = html_error("Вы не заполнили поле \"Текст\"");
  
// Проверка "Фала" на отрибуты :)
  
if(!empty($file)) {
  if(!
check_file($file_name))
  
$errors[file] = html_error("Допустимые форматы файлов: JPG GIF PNG DOC TXT!");
  }
  else  
$errors[file] = html_error("Вы не заполнили поле \"файл\"");

  
$selected[$to] = "selected";
 
// Проверяем, принит ли файл
 // Можно приступать к обработке данных или в них есть ошибки?
 
if(count($errors) == 0) {

  if(!
file_exists($file)) {
  echo 
"Извените, но по каким то причинам файл не считался попробуйте еще разок :)";
  } else {

 
// приступаем к отправки письма

$content chunk_split(base64_encode(fread(fopen("$file","r"),
           
filesize("$file"))));
$from_mail = array("admin@shabash.dreamsee.ru",
                   
"webmaster@shabash.dreamsee.ru",
                   
"bagira@shabash.dreamsee.ru",
                   
"volkodav@shabash.dreamsee.ru");

function 
sendmsg($to$subject$text$from$file$f_name$type) {
    
$content fread(fopen($file,"r"),filesize($file));
    
$content chunk_split(base64_encode($content));
    
$uid strtoupper(md5(uniqid(time())));
    
$tf="text/txt";
    
$name=$type;
    
$header "From: $from\nReply-To: $from\n".
              
"MIME-Version: 1.0\n".
              
"Content-Type: multipart/mixed; boundary=$uid\n".
              
"--$uid\n".
              
"Content-Type: text/plain\n".
              
"Content-Transfer-Encoding: 8bit\n\n".
              
"$text\n".
              
"--$uid\n".
              
"Content-Type: $tf; name=\"$f_name\"\n".
              
"Content-Transfer-Encoding: base64\n".
              
"Content-Disposition: attachment; filename=\"$f_name\"\n\n".
              
"$content\n".
              
"--$uid--";

  
mail($to$subject""$header);

    return 
true;
}

  
// отправляем письмо :)
 
if(sendmsg($from_mail[$to], $subject$text$from$file$file_name$type)) echo "Сообщение отослано. Спасибо!";
  else echo 
"Извените но произошла ошибка :( <br> попробуйте ещё раз :)";
 }
}
}
// мини мини шаблонизатор :)
$html str_replace('"''\\"', @implode("", ( @file("$tmp_name"))));
eval(
"echo \"$html\";");

?>
Добавлено через 1 минуту:
да ещё если пьсьма не будут доходить...
то постродай с кодом после "// приступаем к отправки письма" =) )

Добавлено через 5 минут:
гы ошибка форума, пишу смайл, а выводит
<img src="images/smilies/smile.gif" border="0" alt="">

проба:
PHP код:
:) 
мля ошибку нашёл исправил =)

Последний раз редактировалось smap; 23.12.2003 в 01:32.
smap вне форума