Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 588
от 05.02.2007, 22:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 415, Экспертов: 57
В номере:Вопросов: 3, Ответов: 6


Вопрос № 73367: Здравствуйте! Помогите в следующей ситуации. Небходимо закидывать на сайт файлы. Т. е. две кнопки и строчка. Нажимаем на первую кнопку - вылезает диалог открытия файла и название этого файла и путь к нему пишется в строчку. А второй кнопкой отправляе...
Вопрос № 73458: Здравствуйте. Как написать форму на php. Нужно три поля. Первое: Ваш e-mail, второе: Nik, третье: пояснение. А также две кнопки отправить и очистьть. При нажатии на кнопку отправить, их введённый адрес отправлялось письмо с темой Привет и сообщением ...
Вопрос № 73480: Добрый день. У меня такой вопрос: В литературе говорится, что я могу закачать на серевер файл таким образом: <form action="somefile.php" method=post enctype=multipart/form-data> <input name=file type=file> ...

Вопрос № 73.367
Здравствуйте! Помогите в следующей ситуации. Небходимо закидывать на сайт файлы. Т. е. две кнопки и строчка. Нажимаем на первую кнопку - вылезает диалог открытия файла и название этого файла и путь к нему пишется в строчку. А второй кнопкой отправляем файл на сайт (на Народе). А теперь, собственно, вопрос: как это реализовать?
Заранее благодарен!
Отправлен: 31.01.2007, 00:00
Вопрос задал: LogrusEx (статус: 10-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Крюков
Здравствуйте, LogrusEx!
Никак. Точнее, диалог сделать очень просто. А вот отправить файл на сервер не получиться, т.к. Народ не поддерживает такой возможности. Нужен более серьезный хостинг с поддержкой выполнения сценариев на стороне сервера.

Диалог с возможностью указать файл для передачи:
------- form.html
<form action="file.php" enctype="multipart/form-data">
Закачать файл:<input type="file" name="myfile"><br>
<input type="submit" value="Отправить">
</form>
--------
file.php - название файла-обработчика формы,
enctype="multipart/form-data" - этот атрибут при передаче файлов нужно указывать обязательно

---------
Большинство ответов на вопросы в рассылках находится через Яндекс за 1 мин.
Ответ отправил: Евгений Крюков (статус: Практикант)
Ответ отправлен: 31.01.2007, 02:43
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Буду знать


Вопрос № 73.458
Здравствуйте. Как написать форму на php. Нужно три поля. Первое: Ваш e-mail, второе: Nik, третье: пояснение. А также две кнопки отправить и очистьть. При нажатии на кнопку отправить, их введённый адрес отправлялось письмо с темой Привет и сообщением Смотри. После всего этого, нужно, чтобы переходило на странцу http://aaa.ru/123.php. Как так сделать
Отправлен: 31.01.2007, 14:23
Вопрос задал: SashaFAN (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PVS
Здравствуйте, SashaFAN!
Пишете обычную HTML-форму, в action указываете http://aaa.ru/123.php . А в 123.php получаете данные формы ($_REQUEST['имя_тэга_в_форме']), отсылаете почту функцией mail(), и отображаете дальше что надо.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 31.01.2007, 15:06

Отвечает: Angel7
Здравствуйте, SashaFAN!

Код в приложении. Если Вам что-то не подходит (например, нужно в сообщении еще и дата писалась или еще что), напишите в мини-форум, я изменю код.

Удачи!

Приложение:

---------
Не попрекай людей тем, в чём сам слаб.

Ответ отправила: Angel7 (статус: Студент)
Ответ отправлен: 31.01.2007, 15:22


Вопрос № 73.480
Добрый день.
У меня такой вопрос:
В литературе говорится, что я могу закачать на серевер файл таким образом:
<form action="somefile.php" method=post enctype=multipart/form-data>
<input name=file type=file>
<input type=submit value="Послать">
</form>
Но мне надо сначала чтобы пользователь сначала ввел перечень файлов, по мере их добавления я с помощью javascript создаю на странице hidden-поля с именами этих файлов (hidden-поля типа:<input name=addtoserver[] type=hidden value"c:...somefile.txt">), а потом уже их загружать на сервер!
Можно ли загрузить файлы на сервер имея их список в массиве?

Заранее благодарю за ответ!
Отправлен: 31.01.2007, 16:02
Вопрос задал: Zotaper (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Punk_UnDead
Здравствуйте, Zotaper!
сложно ответить потому что вопрос сформулирован смутно
однако вот вам простой пример
как вы думаете, почему прикрепление файлов на майл.ру сделано именно так а не иначе?
почему самый продвинутый почтовый интерфейс гугла, делает то что делает?
потому что ТОЛЬКО ЯВНОЕ ПОЛЕ типа файл позволяет отправить файл и только явный выбор пользователем файла позволяет выбрать файл для отправки
это реализовано из соображений безопасности и так реализовано во всех браузерах и надеюсь так останется впредь
ведь в противном случае можно бы было забрать любой файл с компьютера пользователя без его ведома
---------
всё испытано на себе
Ответ отправил: Punk_UnDead (статус: 3-ий класс)
Ответ отправлен: 31.01.2007, 16:21
Оценка за ответ: 3
Комментарий оценки:
Хорошо, вы не поняли мой вопрос, я задал дополнительный на минифоруме, скажите, пожалуйста, тогда что-нибудь по этому поводу!

Отвечает: Cimus
Здравствуйте, Zotaper!
Загружать файлы по списку нельзя, Вам уже сказали почему это невозможно.
На mail.ru загрузка файлов реализована очень просто, при нажатии на кнопку "добавить файл", файл загружается на сервер, далее вкуки или сессии сохраняется список загруженных файлов и пути к ним, потом обнавляеться страничка и выводит список загруженных фалов. При загрузке последующих файлов цикл повторится.
Загрузка самих фалов происходить следующим образом:
для начала посмотрим саму форму:
в свойствах формы, помимо параметра action и метода отправки, необходимо указать свойство enctype. Это свойство определяет в какой кодировке должны быть отправленны данныые. Для файлов, особенно бинарных, кодировки недолжно быть вообще, поэтому указываем enctype="multipart/form-data".
После загрузки файлов на сервер, данные можно получить из массива $HTTP_POST_FILES. Этот массив являеться двумерным. Первый уровень определяет имена полей, в которых находяться параметры файла. Одна форма может отправлять несколько файлов, поэтому $HTTP_POST_FILES['поле'] - указывает на нужный файл. Для формы из примера это будет $HTTP_POST_FILES['file1'] и $HTTP_POST_FILES['file2'] соответственно.
Второй уровень определяет свойства загруженного файла. Здесь есть следующие элементы:
1)name - имя файла источника на машине клиента
2)type - тип файла
3)tmp_name - имя временного файла, куда был загруженфайл пользователя
4)size - размер файла
5)error - номер ошибки
На unix-серверах временный файл создаёться (чаще всего) в каталоге /temp, который являеться общедоступным. Будет намного эффективнее если в сценарии загружаемый файл будет скопирован в специально отведённый для этого каталог.

В данном примере файл копируеться в каталог со скриптом
if(copy($HTTP_POST_FILES['file1']['tmp_name'],'./'.$HTTP_POST_FILES['file1']['name']))
print 'копирование завершено';
else
print 'ошибка копирования';

В самой форме можно указать максимальный размер загружаемого файла
- максимум 300 байт

Приложение:

---------
Достичь можно любых высот !

Ответ отправил: Cimus (статус: Студент)
Ответ отправлен: 31.01.2007, 17:38
Оценка за ответ: 5
Комментарий оценки:
Ну чтож, я уже к этому и сам пришел, но спасибо за разъяснения, будем пробовать...

Отвечает: HookEst
Здравствуйте, Zotaper!
Если на форме поместить несколько <INPUT TYPE=FILE> с одинаковым "массивным" именем(с квадратными скобками в конце):
например:
<INPUT TYPE=FILE NAME=userfile[]><BR>
<INPUT TYPE=FILE NAME=userfile[]><BR>
<INPUT TYPE=FILE NAME=userfile[]><BR>
то загрузятся все выбранные файлы, а в PHP элементы $_FILES будут массивами:
вот,например, что вывел у меня print_r($_FILES):
Array
(
[userfile] => Array
(
[name] => Array
(
[0] => 1.htm
[1] => price2.htm
[2] => 1.js
)

[type] => Array
(
[0] => text/html
[1] => text/html
[2] => application/x-javascript
)

[tmp_name] => Array
(
[0] => /tmpphp53.tmp
[1] => /tmpphp54.tmp
[2] => /tmpphp55.tmp
)

[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)

[size] => Array
(
[0] => 1046
[1] => 2188
[2] => 369
)

)

)
и обрабатывать UPLOADED FILES можно также как и для одного файла.

В приложении один из вариантов реализации формы для списка файлов, здесь только идея, нужно еще хотя бы реализовать возможность изменения списка или его очистки.(проверял только в IE)
Успехов.

Приложение:

Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 02.02.2007, 09:56
Оценка за ответ: 5
Комментарий оценки:
Да... отличная идея, где же Вы раньше были, я б так и сделал!!! Мне то только по IE и надо. Просто я хотел, чтоб у меня на экране было только одно файловое поле, а поступить таким образом я не догадался, сделал загрузку каждого файла по отдельности, а чтобы форма постоянно не перегружалась использую iframe.
Большое спасибо за идею, вследующий раз воспользуюсь!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.43 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное