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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> загрузка картинки и отправка на емайл, загрузка картинки и отправка на емайл 
:(
    Опции темы
supervladislav
Дата 19.4.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



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


Код

<table cellpadding="0" cellspacing="0" border="0" align="center" width="80%">
<tr valign="top">
<form action="" method="post" enctype="multipart/form-data">
<td align="left">Ваше имя:</td>
<td align="left"><input size="30" name="name" type="text">
<?php if(empty($_POST['name']) && $_SERVER['REQUEST_METHOD']=='POST'){echo("<font color=red><br>Пожалуйста введите ваше имя</font>");} ?>
</td>
</tr>
<tr valign="top">
<td align="left">Ваша фамилия:</td>
<td align="left"><input size="30" name="famili" type="text">
<?php if(empty($_POST['famili']) && $_SERVER['REQUEST_METHOD']=='POST'){echo("<font color=red><br>Пожалуйста введите вашу фамилию</font>");} ?>
</td>
</tr>
<tr valign="top">
<td align="left">Ваш емайл для связи:</td>
<td align="left"><input size="30" name="mail" type="text">
<?php if(empty($_POST['mail']) && $_SERVER['REQUEST_METHOD']=='POST'){echo("<font color=red><br>Пожалуйста введите свой email</font>");} ?>
</td>
</tr>
<tr valign="top">
<td align="left">Причина вашего обрашения:</td>
<td align="left"><textarea name="text" rows="10" cols="22" type="text"></textarea>
<?php if(empty($_POST['text']) && $_SERVER['REQUEST_METHOD']=='POST'){echo("<font color=red><br>Пожалуйста введите вашу причину обращения ко мне</font>");} ?></td>
<tr valign="top">
<td align="left""><br><br>Первое загружаемое изображение:</td>
<td align="left"><br><br><input size="30"  type="file" name="file1"></td>
</tr>
<tr valign="top">
<td align="left">Второе загружаемое изображение:</td>
<td align="left"><input size="30" type="file" name="file2"></td>
</tr>
<tr valign="top">
<td align="left">Третье загружаемое изображение:</td>
<td align="left"><input size="30" type="file" name="file3"></td>
</tr>
<tr valign="top">
<td colspan="2" align="center"><br><input size="30" type="submit" value="Оправить" ></td>
<tr>
</form>




</table>











Код

<?php

$uploadfiles='./upload';
if(!empty($_POST['name']) &&  !empty($_POST['famili']) && !empty($_POST['email']) && !empty($_POST['text']) && $_SERVER['REQUEST_METHOD']=='post')
{
$vse.=$_POST['name']."\n";
$vse.=$_POST['famili']."\n";
$vse.=$_POST['email']."\n";
$vse.=$_POST['text']."\n";
$files1=$uploadfiles.basename($_FILES['file1']['name']);
$files2=$uploadfiles.basename($_FILES['file2']['name']);
$files3=$uploadfiles.basename($_FILES['file3']['name']);
if(move_uploaded_file($_FILES['file1']['tmp_name'],$files1) && $_FILES['file1']['type']=='image/jpeg' && $_FILES['file1']['size']<=524288000)
{echo "файл".$files1."загружен";} 
if(move_uploaded_file($_FILES['file2']['tmp_name'],$files2) && $_FILES['file2']['type']=='image/jpeg' && $_FILES['file2']['size']<=524288000)
{echo("файл".$files2."загружен");} 
if(move_uploaded_file($_FILES['file3']['tmp_name'],$files3) && $_FILES['file3']['type']=='image/jpeg' && $_FILES['file3']['size']<=524288000)
{echo("файл".$files3."загружен");}
if(mail("[email protected]","заказ с моего сайта Magicenergy",$vse,"Content-type: text/html; charset=windows-1251 \n")){
echo("емайл отправлен");
}}

?>

PM MAIL   Вверх
skyboy
Дата 19.4.2008, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(supervladislav @  19.4.2008,  20:59 Найти цитируемый пост)
но в каталог ни у провайдера ни у меня ничего незаписывается ,да и странно как-то емайл должен приходить ,а он почему-то ничего 

ты определись.
либо не загружается картинка.
либо не формируется письмо.
либо не отправляется письмо.
либо не доходит письмо(к примеру, неправильно сформировано).
какого крокодила рещать вопрос "тут что-то не так в этой куче"? почему не разделять задачу?
PM MAIL   Вверх
supervladislav
Дата 19.4.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Цитата(skyboy @ 19.4.2008,  22:37)
Цитата(supervladislav @  19.4.2008,  20:59 Найти цитируемый пост)
но в каталог ни у провайдера ни у меня ничего незаписывается ,да и странно как-то емайл должен приходить ,а он почему-то ничего 

ты определись.
либо не загружается картинка.
либо не формируется письмо.
либо не отправляется письмо.
либо не доходит письмо(к примеру, неправильно сформировано).
какого крокодила рещать вопрос "тут что-то не так в этой куче"? почему не разделять задачу?

незаписывается файл в директорию 
PM MAIL   Вверх
Fortop
Дата 19.4.2008, 22:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Код

$uploadfiles='./upload';
$files3=$uploadfiles.basename($_FILES['file3']['name']);


слеш пропустил между $uploadfiles и basename();

добавь предопределенную константу DIRECTORY_SEPARATOR между ними.



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
skyboy
Дата 19.4.2008, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



ни один? тогда зачем куча кода?
приведи:
а) код html формы
б) содержимое массива $_FILES в скрипте-обработчике формы
в) права на каталог, в который пытаешься записать файлы
PM MAIL   Вверх
supervladislav
Дата 20.4.2008, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



права всё окей с правами в ручную ставил ,сам код копирования и добовления файла правильный????
PM MAIL   Вверх
Fortop
Дата 20.4.2008, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(Fortop @  19.4.2008,  22:54 Найти цитируемый пост)
слеш пропустил между $uploadfiles и basename();

Еще раз повторить?

Если ты тестировал, то рядом с скриптом должна было образоваться пачка файлов чье имя начинается на "upload"


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
supervladislav
Дата 20.4.2008, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



поменял на вот так -всёравно ничего ,но в массиве файлес инфа о них есть проверял
Код

print_r($_FILES);


Код

$uploadfiles='./upload/';
if(!empty($_SERVER['REQUEST_METHOD']=='post'))
{
$vse.=$_POST['name']."\n";
$vse.=$_POST['famili']."\n";
$vse.=$_POST['email']."\n";
$vse.=$_POST['text']."\n";
$files1=$uploadfiles.DIRECTORY_SEPARATOR.basename($_FILES['file1']['name']);
$files2=$uploadfiles.basename($_FILES['file2']['name']);
$files3=$uploadfiles.basename($_FILES['file3']['name']);
if(move_uploaded_file($_FILES['file1']['tmp_name'],$files1) && $_FILES['file1']['type']=='image/jpeg' && $_FILES['file1']['size']<=524288000)
{echo "файл".$files1."загружен";}
if(move_uploaded_file($_FILES['file2']['tmp_name'],$files2) && $_FILES['file2']['type']=='image/jpeg' && $_FILES['file2']['size']<=524288000)
{echo("файл".$files2."загружен");}
if(move_uploaded_file($_FILES['file3']['tmp_name'],$files3) && $_FILES['file3']['type']=='image/jpeg' && $_FILES['file3']['size']<=524288000)
{echo("файл".$files3."загружен");}
i}

?>


?>


Это сообщение отредактировал(а) supervladislav - 20.4.2008, 00:55
PM MAIL   Вверх
Fortop
Дата 20.4.2008, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



supervladislav, 
Я сразу не обратил внимание. НО

Это уже второй случай за последние 2 дня.
Код

<tr valign="top">
<form action="" method="post" enctype="multipart/form-data">
<td align="left">Ваше имя:</td>


так не НАДО делать

оберни таблицу формой

Код

<form>
<table>
тут твои поля
</table>
</form>


Добавлено @ 00:56
Вот предыдущий http://forum.vingrad.ru/index.php?showtopi...t&p=1484157

Добавлено @ 00:57
К слову сказать, автор предыдущей темы более точно диагностировал проблемы. Поэтому большая просьба прочитай вот эту статью
http://forum.vingrad.ru/articles/topic-206796.html
http://forum.vingrad.ru/forum/topic-27230.html
и все что найдешь на форуме про отладку

Это сообщение отредактировал(а) Fortop - 20.4.2008, 01:00


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
supervladislav
Дата 20.4.2008, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Весьма польщён за разъяснения ,но дело в том ,что  у меня вобще ошибок не выдаётся!!!!
несовсем понимаю как скрипт того товарища связан с моим 
но в в массиве $_FILES вот такое 
Array ( [file1] => Array ( [name] => IMG_0075.jpg [type] => image/jpeg [tmp_name] => Z:\tmp\php73C.tmp [error] => 0 [size] => 280235 ) [file2] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [file3] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )

Это сообщение отредактировал(а) supervladislav - 20.4.2008, 02:05
PM MAIL   Вверх
Fortop
Дата 20.4.2008, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



1. связаны тем, что вы рвете форму таблицей. Не все браузеры (в частности FireFox) всегда корректно обрабатывают такие вещи
2. надо было добавить либо слэш в конце $uploadfiles,
либо все имена файлов сделать как у $files1 с DIRECTORY_SEPARATOR. Но что-то одно smile
3. также может быть полезным использовать не относительный путь а
Код

$uploadfiles = realpath('./upload/');

4. Поскольку $_FILES у тебя все-таки не пустой, то выведи на экран сами имена
$files1, $flies2, $files3.
Чтобы быть твердо уверенным, что у тебя правильно сформировались пути и там куда ты пытаешься копировать, есть нужный каталог smile

Добавлено через 11 минут и 29 секунд
Да и еще, ты уверен, что 

Код

if($_SERVER['REQUEST_METHOD']=='post')


выполняется?

Добавлено через 12 минут и 58 секунд
Цитата(supervladislav @  20.4.2008,  02:05 Найти цитируемый пост)
но дело в том ,что  у меня вобще ошибок не выдаётся!!!!

Чтобы включить вывод ошибок - вначале скрипта добавь

Код

error_reporting(E_ALL);



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
supervladislav
Дата 20.4.2008, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



вот так усё изменил ,то что в переменных $files1 он невыводит))))на счёт POST нет хотя регистр поменял неизменилось ничего,ошибки выдавались на $files типа неизвестная переменная ,но переписал их вначало все ошибки исчезли


Код

<?php
error_reporting(E_ALL);
$uploadfiles='./upload';
if($_SERVER['REQUEST_METHOD']=='POST'))
{

$files1=$uploadfiles.DIRECTORY_SEPARATOR.$_FILES['file1']['name'];
$files2=$uploadfiles.DIRECTORY_SEPARATOR.$_FILES['file2']['name'];
$files3=$uploadfiles.DIRECTORY_SEPARATOR.$_FILES['file3']['name'];
echo($files1);
echo($files2);
echo($files3);
if(!move_uploaded_file($_FILES['file1']['tmp_name'],$files1) && $_FILES['file1']['type']=='image/jpeg' && $_FILES['file1']['size']<=524288000)
{echo "файл".$files1."загружен";}
if(!move_uploaded_file($_FILES['file2']['tmp_name'],$files2) && $_FILES['file2']['type']=='image/jpeg' && $_FILES['file2']['size']<=524288000)
{echo("файл".$files2."загружен");}
if(!move_uploaded_file($_FILES['file3']['tmp_name'],$files3) && $_FILES['file3']['type']=='image/jpeg' && $_FILES['file3']['size']<=524288000)
{echo("файл".$files3."загружен");}
}



?>

PM MAIL   Вверх
Fortop
Дата 20.4.2008, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(supervladislav @  20.4.2008,  03:02 Найти цитируемый пост)
то что в переменных $files1 он невыводит))))

Значит оно не проходит условие
Код

if($_SERVER['REQUEST_METHOD']=='POST'))


Добавлено @ 03:30
У меня отлично работает

Код

error_reporting(E_ALL);
$uploadfiles=realpath('./upload');
if($_SERVER['REQUEST_METHOD']=='POST')
{
$files1=$uploadfiles . DIRECTORY_SEPARATOR . basename($_FILES['file1']['name']);
$files2=$uploadfiles . DIRECTORY_SEPARATOR . basename($_FILES['file2']['name']);
$files3=$uploadfiles . DIRECTORY_SEPARATOR . basename($_FILES['file3']['name']);
if(move_uploaded_file($_FILES['file1']['tmp_name'],$files1) && $_FILES['file1']['type']=='image/jpeg' && $_FILES['file1']['size']<=524288000)
{echo "файл".$files1."загружен";}
if(move_uploaded_file($_FILES['file2']['tmp_name'],$files2) && $_FILES['file2']['type']=='image/jpeg' && $_FILES['file2']['size']<=524288000)
{echo("файл".$files2."загружен");}
if(move_uploaded_file($_FILES['file3']['tmp_name'],$files3) && $_FILES['file3']['type']=='image/jpeg' && $_FILES['file3']['size']<=524288000)
{echo("файл".$files3."загружен");}
var_dump($files1);
var_dump($files2);
var_dump($files3);
die();
}

?>



<form action="" method="post" enctype="multipart/form-data">
<table cellpadding="0" cellspacing="0" border="0" align="center" width="80%">
<tr valign="top">
<td align="left""><br><br>Первое загружаемое изображение:</td>
<td align="left"><br><br><input size="30"  type="file" name="file1"></td>
</tr>
<tr valign="top">
<td align="left">Второе загружаемое изображение:</td>
<td align="left"><input size="30" type="file" name="file2"></td>
</tr>
<tr valign="top">
<td align="left">Третье загружаемое изображение:</td>
<td align="left"><input size="30" type="file" name="file3"></td>
</tr>
<tr valign="top">
<td colspan="2" align="center"><br><input size="30" type="submit" value="Оправить" ></td>
<tr>
</table>
</form>



Добавлено через 4 минуты и 27 секунд
Единственный нюанс. файлы которые я аплоадил
имели тип 'image/pjpeg' 
поэтому echo("файл".$files3."загружен") - не срабатывало естественно smile

Это сообщение отредактировал(а) Fortop - 20.4.2008, 03:30


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
supervladislav
Дата 20.4.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



во спасибо заработало ))))а скажи что ты поменял ???
да на функцию var_dump человеческого объснения ненашол ,для чего она?
PM MAIL   Вверх
Fortop
Дата 20.4.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Я много что поменял, но судя по всему ключевым моментом был этот smile
Код

$uploadfiles=realpath('./upload');


var_dump() выводит на экран дамп содержимого любых переменных/массивов/объектов.
В сочетании с установленным xdebug читать удобнее, чем обычный print_r()
Ну и в отличии от последнего принимает более чем одну переменную.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0626 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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