Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Отправка загруженных файлов с сервера


Автор: PARROT 6.1.2005, 01:37
Есть написанный мной скрипт, не супер конечно, но все таки, форма для отправки файла jpg, gif на почту, максимум что скрипт умеет, это грузить файлы на мой сервер, а вот как его доставить мне на почту, я так и не догадалась.
Рылась в книгах, там ничего конкретного я не нашла, поняла одно, что функция mail(), мой файл не доставит, только введенные данные и название файла.
Но эта тема для меня очень актуальна сейчас.
Код

<?
if($send2)
{
if(empty($name) || empty($mail)){?><script>alert('Незаполнены обязательные поля!');</script><?}
else
{
$nm=strip_tags($name);
$mail=strip_tags($mail);
$text=strip_tags($text);
$text=ereg_replace("\n","<br>",$text);
$psth="/htdocs/avtodiesel/";
copy($picture,$path.$picture_name);
$header="Content-type:text/html;charset=windows-1251\n\n";
$msg.="<table width=400 border bordercolor=green style=border-collapse:collapse><tr><td>$org</td></tr>
<tr><td>$name</td></tr><tr>
<td>$tel</td></tr><tr><td>$mail</td></tr><tr><td>$text</td></tr><tr><td>$picture_name</td></tr></table>";
mail("1538733@traktora.spb.ru","Потребность",$msg,$header);
}
}
?>

Автор: IZ@TOP 6.1.2005, 04:45
http://forum.vingrad.ru/index.php?showtopic=21038&view=findpost&p=142897
Замечательный класс для отправки почты с аттачами. Пример использования в самом низу после кода класса.

PS Прошу пожалуйста прежде чем задать вопрос поискать на форуме, иногда это бывает быстрее чем дождаться ответа smile

Автор: PARROT 6.1.2005, 15:02
Цитата(IZ @ 6.1.2005, 04:45)
http://forum.vingrad.ru/index.php?showtopic=21038&view=findpost&p=142897
Замечательный класс для отправки почты с аттачами. Пример использования в самом низу после кода класса.

PS Прошу пожалуйста прежде чем задать вопрос поискать на форуме, иногда это бывает быстрее чем дождаться ответа smile

Я вчера на эту тему весь форум перерыла, не нашла, но зато много нашла не по теме.
Спасибо!

Автор: IZ@TOP 6.1.2005, 15:15
PARROT, всегда рады помочь.

Автор: PARROT 6.1.2005, 17:12
Цитата(IZ @ 6.1.2005, 15:15)
PARROT, всегда рады помочь.

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

Автор: IZ@TOP 6.1.2005, 17:41
PARROT, там пример есть, это раз. Это класс, и там тебе трогать ни чего не нужно - это два. Пример использования:

Код

<?php

// ... допустим мы загрузили файлы на сервер в директорию ./data/

include('mail.class.php'); // Подключаем файл с классом для работы с mail

$mail = new Mail; // Инициализируем класс.
$mail->from      = 'admin@uletai.com'; // От кого
$mail->to        = 'arial@hotmail.ru'; // Кому
$mail->subject   = 'Тестовое сообщение'; // Тема сообщения
$mail->body      = '<center><b>Привет!</b><br />Вот изображение 1: <img src="1.gif" /> и изображение 2: <img src="2.gif" /></center>'; // Само сообщение. <img src="1.gif"> будет ссылаться на приаттаченные файлы.

$mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний.
$mail->add_attachment('./data/1.gif'); // Добавляем закачанные файлы в письмо.
$mail->add_attachment('./data/2.gif'); // И еще

$mail->send(); // Отправляем.

// ... вот собственно и все. Больше тебе ни чего делать не нужно.

?>


Добавлено @ 17:44
PS По умолчанию письма отправляются в кодировке koi8-r, чтобы это изменить, необходимо добавить после инициализации класса изменение свойств объекта (то есть его переменной):

Код

$mail->cp = "windows-1251";

Автор: PARROT 6.1.2005, 22:54
Цитата(IZ @ 6.1.2005, 17:41)
PARROT, там пример есть, это раз. Это класс, и там тебе трогать ни чего не нужно - это два. Пример использования:

Код

<?php

// ... допустим мы загрузили файлы на сервер в директорию ./data/

include('mail.class.php'); // Подключаем файл с классом для работы с mail

$mail = new Mail; // Инициализируем класс.
$mail->from      = 'admin@uletai.com'; // От кого
$mail->to        = 'arial@hotmail.ru'; // Кому
$mail->subject   = 'Тестовое сообщение'; // Тема сообщения
$mail->body      = '<center><b>Привет!</b><br />Вот изображение 1: <img src="1.gif" /> и изображение 2: <img src="2.gif" /></center>'; // Само сообщение. <img src="1.gif"> будет ссылаться на приаттаченные файлы.

$mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний.
$mail->add_attachment('./data/1.gif'); // Добавляем закачанные файлы в письмо.
$mail->add_attachment('./data/2.gif'); // И еще

$mail->send(); // Отправляем.

// ... вот собственно и все. Больше тебе ни чего делать не нужно.

?>


Добавлено @ 17:44
PS По умолчанию письма отправляются в кодировке koi8-r, чтобы это изменить, необходимо добавить после инициализации класса изменение свойств объекта (то есть его переменной):

Код

$mail->cp = "windows-1251";

Может я чего не допоняла, но у меня по прежнему фалы грузятся на сервер, но не отправляются.
Файл класса о котором мы говорим (по ссылке, на которую вы меня послали, подключила).
Путь прописала правильно. Голову сломаешь пока дойдет, но не оторваться уже.
Что тут не так?
<?php

// ... допустим мы загрузили файлы на сервер в директорию ./data/

include('mail.class.php'); // Подключаем файл с классом для работы с mail

if($send)
{
if(empty($name) || empty($mail)){?><script>alert('Незаполнены обязательные поля!');</script><?}
else
{
$nm=strip_tags($name);
$mail=strip_tags($mail);
$text=strip_tags($text);
$text=ereg_replace("\n","<br>",$text);
$psth="/home/file/www/data/";
copy($picture,$path.$picture_name);
$mail = new Mail; // Инициализируем класс.
$mail->from = '$mail'; // От кого
$mail->to = '1538733@traktora.spb.ru'; // Кому
$mail->subject = 'Потребность'; // Тема сообщения
$mail->body = '<table width=400 border bordercolor=green style=border-collapse:collapse><tr><td>$org</td></tr><tr><td>$name</td></tr><tr><td>$tel</td></tr><tr><td>$mail</td></tr><tr><td>$text</td></tr><tr><td>$picture_name</td></tr></table>
<br />фото: <img src="$picture_name" />'; // Само сообщение. <img src="$picture"> будет ссылаться на приаттаченные файлы.

$mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний.
$mail->add_attachment('./home/file/www/data/$picture_name'); // Добавляем закачанные файлы в письмо.

$mail->send(); // Отправляем.
}
}
echo "$mail";
// ... вот собственно и все. Больше тебе ни чего делать не нужно.

?>
<FORM action="file.php" method=post enctype="multipart/form-data">
<table align="center" cellpadding="0" cellspacing="0" bgcolor="#E8F0FB">
<tr>
<td valign=top>
<fieldset>
<table border="0" cellpadding="0" cellspacing="0">
<tr valign=top>
<td align=center>организация:</td><td align=center>имя:</td>
</tr>
<tr>
<td><input type="text" name="org" value="" maxlength="60" size="30"></td>
<td><input type="text" name="name" value="" maxlength="60" size="30"><?echo $err[name]?></td>
</tr>
<tr>
<td align=center>тел/факс:</td><td align=center>e-mail:</td>
</tr>
<tr>
<td><input type="text" name="tel" value="" maxlength="60" size="30"></td>
<td><input type="text" name="mail" value="" maxlength="60" size="30"><?echo $err[mail]?></td>
</tr>
<tr>
<td colspan=2 align=center><textarea name="text" cols="50" rows="3"></textarea></td>
</tr>
<tr>
<td style='padding-left:40' colspan=2>прикрепить фото:<input type=file name=picture></td>
</tr>
<tr>
<td><input type="submit" name=send value="отправить" class="inp" style='width:100;background-color:#E5EAEF;' style='cursor:hand'></td>
<td align="right"><input type="reset" value="отменить" class="inp" style='width:100;background-color:#E5EAEF;' style='cursor:hand'></td>
</tr>
</table>
</fieldset>
</td>
</tr>
</table>
</form>

При том когда печатаешь само отправленное сообщение, то вместо хотя бы таблицы, выскакивает слово Object
И еще, функция send() , она существует?

Автор: IZ@TOP 7.1.2005, 00:02
Для начала все mail-> замени на m, так как у тибя в коде есть переменные с именем mail - будет конфликт. Так же хотелось бы поглядеть код где ты загружаешь файлы на сервер.

Автор: PARROT 7.1.2005, 00:28
Цитата(IZ @ 7.1.2005, 00:02)
Для начала все mail-> замени на m, так как у тибя в коде есть переменные с именем mail - будет конфликт. Так же хотелось бы поглядеть код где ты загружаешь файлы на сервер.

Заменила только не mail->, а в своем коде, все mail заменила на mal

Вот код который загружает файлы на сервер:

$psth="/home/file/www/data/";
copy($picture,$path.$picture_name);

а вот все остальное:


<?php

// ... допустим мы загрузили файлы на сервер в директорию ./data/

include('mail.class.php'); // Подключаем файл с классом для работы с mail

if($send)
{
if(empty($name) || empty($maill)){?><script>alert('Незаполнены обязательные поля!');</script><?}
else
{
$nm=strip_tags($name);
$mal=strip_tags($mal);
$text=strip_tags($text);
$text=ereg_replace("\n","<br>",$text);
$psth="/home/file/www/data/";
copy($picture,$path.$picture_name);
$mail = new Mail; // Инициализируем класс.
$mail->from = '$maill'; // От кого
$mail->to = '1538733@traktora.spb.ru'; // Кому
$mail->subject = 'Потребность'; // Тема сообщения
$mail->body = '<table width=400 border bordercolor=green style=border-collapse:collapse><tr><td>$org</td></tr><tr><td>$name</td></tr><tr><td>$tel</td></tr><tr><td>$mal</td></tr><tr><td>$text</td></tr><tr><td>$picture_name</td></tr></table>
<br />фото: <img src="$picture_name" />'; // Само сообщение. <img src="$picture"> будет ссылаться на приаттаченные файлы.

$mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний.
$mail->add_attachment('./home/file/www/data/$picture_name'); // Добавляем закачанные файлы в письмо.

$mail->send(); // Отправляем.
}
}
echo "$mail";
// ... вот собственно и все. Больше тебе ни чего делать не нужно.

?>
<FORM action="file.php" method=post enctype="multipart/form-data">
<table align="center" cellpadding="0" cellspacing="0" bgcolor="#E8F0FB">
<tr>
<td valign=top>
<fieldset>
<table border="0" cellpadding="0" cellspacing="0">
<tr valign=top>
<td align=center>организация:</td><td align=center>имя:</td>
</tr>
<tr>
<td><input type="text" name="org" value="" maxlength="60" size="30"></td>
<td><input type="text" name="name" value="" maxlength="60" size="30"><?echo $err[name]?></td>
</tr>
<tr>
<td align=center>тел/факс:</td><td align=center>e-mail:</td>
</tr>
<tr>
<td><input type="text" name="tel" value="" maxlength="60" size="30"></td>
<td><input type="text" name="mal" value="" maxlength="60" size="30"><?echo $err[mail]?></td>
</tr>
<tr>
<td colspan=2 align=center><textarea name="text" cols="50" rows="3"></textarea></td>
</tr>
<tr>
<td style='padding-left:40' colspan=2>прикрепить фото:<input type=file name=picture></td>
</tr>
<tr>
<td><input type="submit" name=send value="отправить" class="inp" style='width:100;background-color:#E5EAEF;' style='cursor:hand'></td>
<td align="right"><input type="reset" value="отменить" class="inp" style='width:100;background-color:#E5EAEF;' style='cursor:hand'></td>
</tr>
</table>
</fieldset>
</td>
</tr>
</table>
</form>

Автор: IZ@TOP 7.1.2005, 01:19
Код

$mail->body = "<table width=400 border bordercolor=green style=border-collapse:collapse><tr><td>$org</td></tr><tr><td>$name</td></tr><tr><td>$tel</td></tr><tr><td>$mal</td></tr><tr><td>$text</td></tr><tr><td>$picture_name</td></tr></table>
<br />фото: <img src=\"$picture_name\" />"; // Само сообщение. <img src="$picture"> будет ссылаться на приаттаченные файлы.

$mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний.
$mail->add_attachment($psth.$picture_name); // Добавляем закачанные файлы в письмо.


Попробуй заменить.
Добавлено @ 01:20
Тебе стоит прочесть книжку по РНР, то место где о синтаксисе и операторах рассказывается.

Автор: PARROT 7.1.2005, 01:35
Цитата(IZ @ 7.1.2005, 01:19)
Код

$mail->body = "<table width=400 border bordercolor=green style=border-collapse:collapse><tr><td>$org</td></tr><tr><td>$name</td></tr><tr><td>$tel</td></tr><tr><td>$mal</td></tr><tr><td>$text</td></tr><tr><td>$picture_name</td></tr></table>
<br />фото: <img src=\"$picture_name\" />"; // Само сообщение. <img src="$picture"> будет ссылаться на приаттаченные файлы.

$mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний.
$mail->add_attachment($psth.$picture_name); // Добавляем закачанные файлы в письмо.


Попробуй заменить.
Добавлено @ 01:20
Тебе стоит прочесть книжку по РНР, то место где о синтаксисе и операторах рассказывается.

Книгу по php читаю постоянно, просто не все запоминаю, могу ошибиться.

Автор: PARROT 7.1.2005, 01:48
Цитата(PARROT @ 7.1.2005, 01:35)
Цитата(IZ @ 7.1.2005, 01:19)
Код

$mail->body = "<table width=400 border bordercolor=green style=border-collapse:collapse><tr><td>$org</td></tr><tr><td>$name</td></tr><tr><td>$tel</td></tr><tr><td>$mal</td></tr><tr><td>$text</td></tr><tr><td>$picture_name</td></tr></table>
<br />фото: <img src=\"$picture_name\" />"; // Само сообщение. <img src="$picture"> будет ссылаться на приаттаченные файлы.

$mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний.
$mail->add_attachment($psth.$picture_name); // Добавляем закачанные файлы в письмо.


Попробуй заменить.
Добавлено @ 01:20
Тебе стоит прочесть книжку по РНР, то место где о синтаксисе и операторах рассказывается.

Книгу по php читаю постоянно, просто не все запоминаю, могу ошибиться.

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

Автор: PARROT 7.1.2005, 02:01
Цитата(PARROT @ 7.1.2005, 01:48)
Цитата(PARROT @ 7.1.2005, 01:35)
Цитата(IZ @ 7.1.2005, )
Код

$mail->body = "<table width=400 border bordercolor=green style=border-collapse:collapse><tr><td>$org</td></tr><tr><td>$name</td></tr><tr><td>$tel</td></tr><tr><td>$mal</td></tr><tr><td>$text</td></tr><tr><td>$picture_name</td></tr></table>
<br />фото: <img src=\"$picture_name\" />"; // Само сообщение. <img src="$picture"> будет ссылаться на приаттаченные файлы.

$mail->add_header('X-Priority: 2'); // Добавляем приоритет письма как средний.
$mail->add_attachment($psth.$picture_name); // Добавляем закачанные файлы в письмо.


Попробуй заменить.
Добавлено @ 01:20
Тебе стоит прочесть книжку по РНР, то место где о синтаксисе и операторах рассказывается.

Книгу по php читаю постоянно, просто не все запоминаю, могу ошибиться.

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

Большое вам, Огромное спасибо!
Почему не получалось?
Там была ошибочка в написании пути, ошибка на одну букву, всего то!
Зато теперь как здорово, все работает!
Файлы приходят!
Можно еще вопросик?
Мне нужно в базу заносить данные, счетчик посещений, как организовать правильно таблицу?
В первой таблицы будут храниться IP посетителей, а во второй сам счетчик, который будет увеличиваться при условии если человек не заходил на сайт в течении суток.
Для счетчика, знаю как организовать таблицу, а вот для ip не очень представляю.
Если можно, пожалуйста, объясните.
Заранее спасибо! smile

Автор: IZ@TOP 7.1.2005, 02:20
Думаю что идеальным вариантом будети либо статистика mail.ru, либо rambler (мой выбор), или spylog и ему подобные.

Автор: PARROT 7.1.2005, 02:25
Цитата(IZ @ 7.1.2005, 02:20)
Думаю что идеальным вариантом будети либо статистика mail.ru, либо rambler (мой выбор), или spylog и ему подобные.

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)