|  |   | 24.06.2010, 00:52 
                                    
                                    
                                    
                                    
                                  | 
                            
                            
                              |  | Гость Гость
 
 
 | С сайта должно отправляться письмо с вложенным файлом. Не получается проверить наличие файла. Если файл не вкладывался, то у меня откуда-то образуется .dat. 
 
 Код:opt($DOCUMENT_ROOT.$f_Attachment, $mailer->attachFile($DOCUMENT_ROOT.$f_Attachment_url, $f_Attachment[name], "application/octet-stream")); 
 или второй вариант
 
 Код:if(File_Exists($DOCUMENT_ROOT.$f_Attachment)){$mailer->attachFile($DOCUMENT_ROOT.$f_Attachment_url, $f_Attachment[name], "application/octet-stream");
 }
 | 
                            
                            
  |  |   | 24.06.2010, 08:34 
        
        
        
        
      | 
  |  | malich Андрей Малков
 
 
 Зарегистрирован: 2005-08-09
 Сообщений: 522
 | А в чем у вас собственно проблема? Первый вариант не рабочий так как условие всегда будет верным. 
 По сути информация о файле хранится в БД, вам нужно проверить есть ли переменная содержащая путь до файла. Проверять физическое наличие файла большого смысла нет.
 
 Не уверен но File_Exists может не работать если вы используете защищенную файловую систему, так как файлы хранятся на сервере без расширения.
 
 К тому же если вы пишите этот код в действии после добавления $f_Attachment будет всегда верно, вне зависимости от того есть файл или нет, так как это массив значений
 
 Пишите просто:
 
 Код:".opt($f_Attachment_url,"....")."
 if($f_Attachment_url){
 ......
 }
 
 А вернее будет:
 
 Код:".opt($_FILES[f_Attachment][size]!=0 && $_FILES[f_Attachment][type]!='',"....")."
 if($_FILES[f_Attachment][size]!=0 && $_FILES[f_Attachment][type]!=''){
 ......
 }
 | 
  |  |   | 24.06.2010, 11:25 
        
        
        
        
      | 
  |  | Гость Гость
 
 
 | почему-то это не срабатывает: 
 
 Код:opt($_FILES[f_Attachment][size]!=0 && $_FILES[f_Attachment][type]!='', $mailer->attachFile($DOCUMENT_ROOT.$f_Attachment_url, $f_Attachment[name], "application/octet-stream")); 
 все равно присоединяется файл .dat 73 байт
 | 
  |  |   | 24.06.2010, 11:44 
        
        
        
        
      | 
  |  | Гость Гость
 
 
 | может у меня команда вложения внутри opt написана неверно? если беру в "", выдается ошибка
 | 
  |  |   | 24.06.2010, 12:12 
        
        
        
        
      | 
  |  | malich Андрей Малков
 
 
 Зарегистрирован: 2005-08-09
 Сообщений: 522
 | opt использовать нельзя php код внутри него выполняется в любом случае (забыл совсем). opt и opt_case желательно использовать только для вывода контента. 
 В вашем случае использовать opt вообще нет смысла, он используется в макетах дизайна, префиксе, объекте в списке, суфиксе и полном выводе объекта. В php коде используйте конструкцию if
 
 Код:if($_FILES[f_Attachment][size]!=0 && $_FILES[f_Attachment][type]!=''){......
 }
 или
 
 Код:".($_FILES[f_Attachment][size]!=0 && $_FILES[f_Attachment][type]!=''?"...": NULL )."
 |