За последние 24 часа нас посетили 103205 программистов и 5653 робота. Сейчас ищут 2318 программистов ...

Форма обратной связи

Тема в разделе "PHP для новичков", создана пользователем bosega, 15 дек 2008.

  1. bosega

    bosega Активный пользователь

    С нами с:
    15 дек 2008
    Сообщения:
    20
    Симпатии:
    0
    Ну а если сделать простенький..без обработки ошибок, размера файла..грубо говоря, чтобы работало
     
  2. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.156
    Симпатии:
    1
    Пи**ец серверу, это называется.
     
  3. bosega

    bosega Активный пользователь

    С нами с:
    15 дек 2008
    Сообщения:
    20
    Симпатии:
    0
    Просто там почему то если в генераторе создаешь поле прикрепить файл не приходит на почту то что находится в textarea..поскольку обработчик в отдельном файле, а сам скрипт в другом, может тот скрипт гляните
    [/list]
     
  4. bosega

    bosega Активный пользователь

    С нами с:
    15 дек 2008
    Сообщения:
    20
    Симпатии:
    0
    PHP:
    1. <?
    2. function show_form()
    3. {
    4. ?>
    5. <form action="" method=post enctype="multipart/form-data">
    6. <div align="center">
    7. <table cellspacing="1" cellpadding="2" bgcolor="#222120">
    8. <tr bgcolor="#D0CFCE">
    9.   <td>
    10.      <b>Представьтесь, пожалуйста:*</b>
    11.   </td>
    12. </tr>
    13. <tr bgcolor="#ffffff">
    14.   <td><input type="text" name="input_name[0]" size="39" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 500);?>" style="border: #000 1px solid; background-color: #fff;">
    15. <input type="hidden" name="check[]" value="1"></b>
    16.   </td>
    17. </tr>
    18. <tr bgcolor="#D0CFCE">
    19.   <td>
    20.      <b>Электронная почта:*</b>
    21.   </td>
    22. </tr>
    23. <tr bgcolor="#ffffff">
    24.   <td><input type="text" name="input_name[1]" size="39" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][1])), 0, 500);?>" style="border: #000 1px solid; background-color: #fff;">
    25. <input type="hidden" name="check[]" value="1"></b>
    26.   </td>
    27. </tr>
    28. <tr bgcolor="#D0CFCE">
    29.   <td>
    30.      <b>Приложить файл:</b>
    31.   </td>
    32. </tr>
    33. <tr bgcolor="#ffffff">
    34.   <td><input type="file" name="file_name[]" size="26" style="border: #000 1px solid; background-color: #fff;">
    35. </b>
    36.   </td>
    37. </tr>
    38. <tr bgcolor="#D0CFCE">
    39.   <td>
    40.      <b>Тема письма:*</b>
    41.   </td>
    42. </tr>
    43. <tr bgcolor="#ffffff">
    44.   <td><input type="text" name="input_name[2]" size="39" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][3])), 0, 500);?>" style="border: #000 1px solid; background-color: #fff;">
    45. <input type="hidden" name="check[]" value="1"></b>
    46.   </td>
    47. </tr>
    48. <tr bgcolor="#D0CFCE">
    49.   <td>
    50.      <b>Текст письма:*</b>
    51.   </td>
    52. </tr>
    53. <tr bgcolor="#ffffff">
    54.   <td><textarea rows="10" cols="30" name="input_name[3]" style="border: #000 1px solid; background-color: #fff;scrollbar-dark-shadowcolor:#E7E8EB;scrollbar-light-shadow-color:#EFF3F4;scrollbar-base-color:#EFF3F4;scrollbar-arrow-color:#D0CFCE;scrollbar-face-color:#E7E8EB;scrollbar-shadow-color:#7D868D;scrollbar-3d-light-color:#EFF3F4;"><?=substr(htmlspecialchars(trim($_POST['input_name'][4])), 0, 10000);?></textarea>
    55. <input type="hidden" name="check[]" value="1"></b>
    56.   </td>
    57. </tr>
    58. <tr>
    59.   <td bgcolor="#222120">
    60.    <table width="100%">
    61.     <tr><td align="left">
    62.      <!--А это просто благодарность создателям, можете стереть, можете поставить нашу ссылочку в другом месте, в общем на Ваше усмотрение. Спасибо! --><small><a href="http://www.php-mail.ru"  style="color:black;"><i>&copy;php-mail</i></a></small><!--конец благодарности :))-->
    63.     </td><td align="right"><input type="submit" value="Отправить" style="background-color:#D0CFCE;border: #000 1px solid;" name="submit">
    64.     </td></tr>
    65.    </table>
    66.   </td>
    67. </tr>
    68. </table>
    69. </div>
    70. </form><div align="center">* Помечены поля, которые необходимо заполнить</div>
    71. <?
    72. }
    73. function complete_mail() {
    74.  
    75.         $empty_input[] = 'Представьтесь, пожалуйста:';
    76.         $empty_input[] = 'Электронная почта:';
    77.         $empty_input[] = 'Тема письма:';
    78.         $empty_input[] = 'Текст письма:';
    79.         for ($i=0; $i<count($_POST['input_name']); $i++) {
    80.               $_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
    81.               if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
    82.                  if(empty($_POST['input_name'][$i])) {
    83.                          $sendemail = 'No';
    84.                          echo '<br /><b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';
    85.  
    86.                  }
    87.               }
    88.         }
    89.         if($sendemail == 'No') show_form();
    90.         $mess = '';
    91. $mess .= '<b>Представьтесь, пожалуйста:: </b>'.$_POST['input_name'][0].'<br />';
    92. $mess .= '<b>Электронная почта:: </b>'.$_POST['input_name'][1].'<br />';
    93. $mess .= '<b>Тема письма:: </b>'.$_POST['input_name'][3].'<br />';
    94. $mess .= '<b>Текст письма:: </b>'.$_POST['input_name'][4].'<br />';
    95. // подключаем файл класса для отправки почты
    96. // если Вы забыли его скачать - [url=http://www.php-mail.ru/class.phpmailer.zip]http://www.php-mail.ru/class.phpmailer.zip[/url]
    97.         require 'class.phpmailer.php';
    98.  
    99.         $mail = new PHPMailer();
    100.         $mail->From = '';      // от кого email
    101.         $mail->FromName = '';   // от кого имя
    102.         $mail->AddAddress([email='vasya@gmail.com]'vasya@gmail.com[/email]', [email='vasya@gmail.com]'vasya@gmail.com[/email]'); // кому - адрес, Имя
    103.         $mail->IsHTML(true);        // выставляем формат письма HTML
    104.         $mail->Subject = '';  // тема письма
    105.         $mail->Body = $mess;
    106.  
    107.         // если был файл, то прикрепляем его к письму
    108.                       if(isset($_FILES['file_name'])) {
    109.                                if($_FILES['file_name']['error'][0] == 0){
    110.                                   $mail->AddAttachment($_FILES['file_name']['tmp_name'][0], $_FILES['file_name']['name'][0]);
    111.                                }
    112.                       }
    113.                      
    114.  
    115.         if($sendemail != 'No'){
    116.               // отправляем наше письмо
    117.               if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
    118.               echo 'Спасибо! Ваше письмо отправлено.';
    119.         }
    120. }
    121. if (!empty($_POST['submit'])) complete_mail();
    122. else show_form();
    123. ?>
     
  5. free-bits

    free-bits Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    скрипт расчитан на залогиненных пользователей, ибо я капчу не вижу
     
  6. bosega

    bosega Активный пользователь

    С нами с:
    15 дек 2008
    Сообщения:
    20
    Симпатии:
    0
    ну фишка там в том что на почту приходит всегда стандартная форма типа: c такого то сайта, с формы обратной связи, а вот оставшаяся инфа:
    Имя
    Телефон
    E-mail
    Тема
    Приложить файл
    Тект письма

    уже находятся в самом письме, когда его открываешь..кривовато конечно, но в моей ситуации лучше чем ничего
     
  7. free-bits

    free-bits Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    Ну а если твой сайт посетит робот и завалит тебя автоматическими сообщениями,
    а еще есть флудеры и спамеры
     
  8. bosega

    bosega Активный пользователь

    С нами с:
    15 дек 2008
    Сообщения:
    20
    Симпатии:
    0
    да, согласен, это должно быть, а как хотя бы подправить то что есть...в чём вообще касяк может быть что из-за того что появляется поле прикрепить файл не отправляется письмо в textarea..т.е. без этого поля всё работает хорошо