Прикрепление и отсылка файлов из формы на сайте. @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 3 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
keen_
новый человек
15
Сообщения: 6
Зарегистрирован: 27.10.06
Откуда: Москва
Заголовок сообщения: Прикрепление и отсылка файлов из формы на сайте.
Сообщение Добавлено: 28 Май 2007, 00:34:37 
Здрасти, smile :beer: Помогите пожалуйста кто может.

Я использую Matt's FormMail. Вот часть этого скрипта:

Код:
#!/usr/bin/perl
##############################################################################
# FormMail                        Version 1.92                               #
# Copyright 1995-2002 Matt Wright mattw@scriptarchive.com                    #
# Created 06/09/95                Last Modified 04/21/02                     #
# Matt's Script Archive, Inc.:    http://www.scriptarchive.com/              #
##############################################################################
# COPYRIGHT NOTICE                                                           #
# Copyright 1995-2002 Matthew M. Wright  All Rights Reserved.                #
#                                                                            #
# FormMail may be used and modified free of charge by anyone so long as this #
# copyright notice and the comments above remain intact.  By using this      #
# code you agree to indemnify Matthew M. Wright from any liability that      #
# might arise from its use.                                                  #
#                                                                            #
# Selling the code for this program without prior written consent is         #
# expressly forbidden.  In other words, please ask first before you try and  #
# make money off of my program.                                              #
#                                                                            #
# Obtain permission before redistributing this software over the Internet or #
# in any other medium. In all cases copyright and header must remain intact. #
##############################################################################
# ACCESS CONTROL FIX: Peter D. Thompson Yezek                                #
#                     http://www.securityfocus.com/archive/1/62033           #
##############################################################################
# Define Variables                                                           #
#      Detailed Information Found In README File.                            #
# $mailprog defines the location of your sendmail program on your unix       #
# system. The flags -i and -t should be passed to sendmail in order to       #
# have it ignore single dots on a line and to read message for recipients    #
$mailprog = '/usr/sbin/sendmail -i -t';
# @referers allows forms to be located only on servers which are defined     #
# in this field.  This security fix from the last version which allowed      #
# anyone on any server to use your FormMail script on their web site.        #
@referers = ('mywebsite.com');
# @recipients defines the e-mail addresses or domain names that e-mail can   #
# be sent to.  This must be filled in correctly to prevent SPAM and allow    #
# valid addresses to receive e-mail.  Read the documentation to find out how #
# this variable works!!!  It is EXTREMELY IMPORTANT.                         #
@recipients = &fill_recipients('mywebsite.com');
# ACCESS CONTROL FIX: Peter D. Thompson Yezek                                #
# @valid_ENV allows the sysadmin to define what environment variables can    #
# be reported via the env_report directive.  This was implemented to fix     #
# the problem reported at http://www.securityfocus.com/bid/1187              #
@valid_ENV = ('REMOTE_HOST','REMOTE_ADDR','REMOTE_USER','HTTP_USER_AGENT');
# Done                                                                       #
##############################################################################
# Check Referring URL
&check_url;
# Retrieve Date
&get_date;
# Parse Form Contents
&parse_form;
# Check Required Fields
&check_required;
# Send E-Mail
&send_mail;
# Return HTML Page or Redirect User
&return_html;
# NOTE rev1.91: This function is no longer intended to stop abuse, that      #
#    functionality is now embedded in the checks made on @recipients and the #
#    recipient form field.                                                   #
sub check_url {
    # Localize the check_referer flag which determines if user is valid.     #
    local($check_referer) = 0;
    # If a referring URL was specified, for each valid referer, make sure    #
    # that a valid referring URL was passed to FormMail.                     #
    if ($ENV{'HTTP_REFERER'}) {
        foreach $referer (@referers) {
            if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$referer|i) {
                $check_referer = 1;
                last;
            }
        }
    }
    else {
        $check_referer = 1;
    }
    # If the HTTP_REFERER was invalid, send back an error.                   #
    if ($check_referer != 1) { &error('bad_referer') }
}
sub get_date {
    # Define arrays for the day of the week and month of the year.           #
    @days   = ('Sunday','Monday','Tuesday','Wednesday',
               'Thursday','Friday','Saturday');


Я хочу добавить возможность прикрепления файлов к письму. Вот код HTML формы на сайте:

Код:
<form action="/cgi-bin/vacancy/resume.cgi" method="post" onSubmit="VForm();return document.ReturnValue"><input type=hidden name="recipient" value="resume@mywebsite.com"><table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#cccccc">
<td><table border="0" cellpadding="6" cellspacing="1" width="100%">
<tr bgcolor="#ffffff">
<td>Ваше имя:</td><td><input size="30" type="text" name="realname" maxlength="100"></td>
</tr>
<tr bgcolor="#ffffff">
<td>Ваш электронный адрес:</td><td><input size="30" type="text" name="email" maxlength="100"></td>
</tr>
<tr bgcolor="#ffffff">
<td>Кому:</td><td><select name="subject">
<option value=""> </option>
<option value="Бухгалтерия | Резюме" > Бухгалтерия</option>
<option value="Склад | Резюме" > Склад </option>
<option value="Секретариат | Резюме" > Секретариат </option>
<option value="Юриспруденция | Резюме" > Юриспруденция </option>
<option value="Дизайн | Резюме" > Дизайн </option>
<option value="Информационные технологии | Резюме" > Информационные технологии </option>
<option value="Розничная торговля | Резюме" > Розничная торговля </option>
</select></td>
</tr>
<tr bgcolor="#ffffff" valign="top">
<td>Текст письма:</td><td><textarea cols="37" rows="6" name="Текст письма"></textarea></td>
</tr>
<tr bgcolor="#ffffff">
<td>Прикрепить файл:<br>
(не более 1000 кб)</td><td><input type="file" name="attach"></td>
</tr>
</table></td>
</tr>
</table><br>
<input type="submit" value="&nbsp; Отправить &nbsp;">
</form>


Подскажите пожалуйста какой код добавить в сам скрипт и что поменять/исправить/дополнить в HTML коде формы.

Сразу говорю - я настоящий smile чайник. Плохо понимаю в программировании. smile Я понимаю, что здесь, возможно уже поднимался подобный вопрос, но я уже 4 часа как не могу найти или разобраться в этом деле. Поэтому обращаюсь к вам.

Сейчас разобрался и понял, что в тэг <form> нужно добавить ENCTYPE="multipart/form-data". Я это сделал, но скрипт меня выругал, сказал, что не заполнено поле recipient, вот:

Error: Bad/No Recipient
There was no recipient or an invalid recipient specified in the data sent to FormMail. Please make sure you have filled in the recipient form field with an e-mail address that has been configured in @recipients...

Но я заполнил это поле. Когда в форме не стоит ENCTYPE="multipart/form-data", то форма работает.

Спасибо, smile
Артур
diezel2005 Муж.
новый человек
16
Сообщения: 140
Зарегистрирован: 12.08.06
Откуда: Украина
Сообщение Добавлено: 28 Май 2007, 02:45:02 
Это не полный код формы. Не хватает листинга, по крайней мере, одной функции - VForm().
И вообще, если вы не в состоянии справиться с элементарной формой, то

Цитата:
наймите программиста


_________________
Не можешь вынести хамства? Сосчитай до десяти и вынеси хама.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 28 Май 2007, 09:50:09 
Это -- в работу. Не забудьте указать стоимость.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 3 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100