Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка файла на емайл, На локале работает вроде, на хосте нет. 
:(
    Опции темы
SergV
Дата 18.12.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Привет. Опять я со старым замыленым вопросом по отправке файлов на емайл. Сразу говорю, просмотрел вроде всё что нашёл по теме, но проблему не решил.

Проблема вот в чем, сделал очень большой форм ;) , и в ней надо было прикручивать файлы, что и сделал по одной найденной гдето тут форм. Всё хорошо, и на денвере файлы уходят, но при переносе на сервер, возникла проблема, файл прикрепляется но не отправляется. Пытался разобраться, и понял что файл вовсе копируется не в ту папку темп, которая зачемто автором скрипта создана рядом с файлом скрипта.

Короче тот путь к тэмп папке, что получает скрипт, не может быть использован, сервер не даёт, а перенаправление на свою папку, не приводит к результату. Вроде как и принимает файл, но на отправке выдаёт пустую страницу, и не чего не отправляется.

Вот код отправки
Код

if($_FILES['FILE']['name']!==''){ 
    if($_FILES['FILE']['size']!==0 and $_FILES['FILE']['size']<=($maxsize*1024)) {        
        if(is_uploaded_file($_FILES['FILE']['tmp_name'])) {
            // Это путь который в $_FILES['FILE']['tmp_name']) => /var/www/web33/phptmp/
            $_FILES['FILE']['tmp_name']='/var/www/web33/html/forms/'; // переадресовываю на свою папку тмп. 
            if(move_uploaded_file($_FILES['FILE']['tmp_name'], $url."/".basename($_FILES['FILE']['name']))) {  // $url это сама папка tmp
                            
                if(xmail($from,$mailto,'Bewerbung',$mail_text,$url."/".basename($_FILES['FILE']['name']))!== FALSE) {

                    echo '<table id="table" align=center border=0 cellpadding=4 cellspacing=0 width=400><tr><td align=center valign=middle>Сообщение было успешно отправленно!<br/></td></tr><td align=center valign=middle><br></td></tr>';
                    echo '<tr><td align=center><a href="/forms/index.php">Назад к форме</a> / <a href="/index.php">На главную</a><br /><br /></td></tr></table>';
                    @unlink($url."/".basename($_FILES['FILE']['name']));
                    session_unset($b);
                }                        
            } else { 
                echo '<tr><td align=center>Не удалось загрузить файл в папку '.$url.'. <a href="/forms/index.php">Назад</a></td></tr>';
            }
        } else { 
            echo'<tr><td align=center>Сообщение не удалось отправить. <a href="/forms/index.php">Назад</a></td></tr>';
        }
    } else {
        echo 'Файл превышает допустимый размер.<br/><a href="/forms/index.php">Назад</a>';
    }
} else {
    // код отправки без файла
}


А это функция
Код

function XMail( $from, $to, $subj='Bewerbung', $text, $filename) {
    $f         = fopen($filename,"rb");
    $un        = strtoupper(uniqid(time()));
    $head      = "From: $from\n";
    $head     .= "To: $to\n";
    $head     .= "Subject: $subj\n";
    $head     .= "X-Mailer: Freshcoder.ru\n";
    $head     .= "Reply-To: $from\n";
    $head     .= "Mime-Version: 1.0\n";
    $head     .= "Content-Type:multipart/mixed;";
    $head     .= "boundary=\"----------".$un."\"\n\n";
    $zag       = "------------".$un."\nContent-Type:text/html;\n";
    $zag      .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
    $zag      .= "------------".$un."\n";
    $zag      .= "Content-Type: application/octet-stream;";
    $zag      .= "name=\"".basename($filename)."\"\n";
    $zag      .= "Content-Transfer-Encoding:base64\n";
    $zag      .= "Content-Disposition:attachment;";
    $zag      .= "filename=\"".basename($filename)."\"\n\n";
    $zag      .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";

    return @mail("$to", "$subj", $zag, $head);
}


Что не так, на локалке всё работает, файл прикрепляется, а на хосте не хочет? :(

Это сообщение отредактировал(а) SergV - 18.12.2008, 17:07
PM   Вверх
bars80080
Дата 18.12.2008, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



а что у нас в $filename ? именно из xmail выведи, посмотри

Это сообщение отредактировал(а) bars80080 - 18.12.2008, 18:49
PM MAIL WWW   Вверх
SergV
Дата 19.12.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Цитата

а что у нас в $filename ? именно из xmail выведи, посмотри


Посмотреть не получилось, так как гсловие не выполняется, а я понять сразу не мог, так как для условия не сделал сообщение на ошибку.
В саму функции передаётся правильно а именно tmp/text.txt, но условие не выполняется, хотя файл загружается в папку темп.
Когда писал, думал что файл не грузится в темп папку, потому что этот мой FireFTP менеджер в лисе встроенный, не хочет показывать что добавилось не им, во время сессии.

В общем файлы грузятся, но вот ошибка думаю лежит в этом, у меня на локалке в серверной папке темп, создаётся файлс с разрешением tmp, тоесть так: E:\tmp\ххххх.tmp
так по крайней мере выводит $_FILES['FILE']['tmp_name']

А вот на сервере выводит так - /var/www/web33/phptmp/ххххх , без расширения, но тут я думаю это связано что это линукс система а не винда, но фиг его знает как должно на самом деле.

И ещё, когда пробовал получит из функции $filename, я просто закомментировал "return @mail("$to", "$subj", $zag, $head);" и ввёл "return $filename;", и мне сразу выдало что письмо отправленно, тоесть условие сработало.


Да вот, ещё, тут в функции не пойму, это ошибка или так и должно быть:
chunk_split(base64_encode(fread($f,filesize($filename))))
Может так должно быть chunk_split(base64_encode(fread($filesize($filename))))

Это сообщение отредактировал(а) SergV - 19.12.2008, 13:45
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.