За последние 24 часа нас посетили 15742 программиста и 1631 робот. Сейчас ищут 939 программистов ...

Re: помогите новенькому... обратная связь...

Тема в разделе "Прочие вопросы по PHP", создана пользователем demettriss, 24 апр 2012.

  1. demettriss

    demettriss Активный пользователь

    С нами с:
    24 апр 2012
    Сообщения:
    9
    Симпатии:
    0
    violetsun.ru/form.rar
    как к этой форме прикрутить добавление файлов - 3шт
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Интересно, кто скачает, распакует, изучит, вернется на форум и поможет? Кто эта добрая душа, жаждущая благотворительности?..
     
  3. demettriss

    demettriss Активный пользователь

    С нами с:
    24 апр 2012
    Сообщения:
    9
    Симпатии:
    0
    странный ты однако...
    не нравится вопрос...
    закрой страницу да и все...
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Почему же, мне понравился вопрос.
    Странно вот называть тему с "Re: " и дублировать темы.
     
  5. demettriss

    demettriss Активный пользователь

    С нами с:
    24 апр 2012
    Сообщения:
    9
    Симпатии:
    0
    случайно...
     
  6. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Ко всему еще и код написан через жопу.

    В форме допиши три инпута с файлами:
    Код (PHP):
    1. <input type="file" name="file1">
    2. <input type="file" name="file2">
    3. <input type="file" name="file3">
    4. <p><input type="submit" class="bt1" value="Отправить сообщение"></p> 
    в options.php:
    после
    Код (PHP):
    1. if (isset($_POST['captcha'])){$captcha = $_POST['captcha'];} 
    допиши
    Код (PHP):
    1. if(is_uploaded_file($_FILES["file1"]["tmp_name"]))
    2. foreach($_FILES as $file){
    3.     if($file["name"]){
    4.         $file["name"]=time().$file["name"];
    5.         rename($file["tmp_name"], "file/".$file["name"]);
    6.         $file_mess[]=$_SERVER['PHP SELF']."/file/".$file['name'];
    7.     }
    8. } 
    поменяй это:
    Код (PHP):
    1. $mes = "Автор назвался: $fio \nОставил такой E-mail: $email \n Текст сообщения: $money"; 
    на это:
    Код (PHP):
    1. $mes = "Автор назвался: $fio \nОставил такой E-mail: $email \n Текст сообщения: $money Файлы:<br>";
    2. foreach($file_mess as $img){
    3.     $mes.="<img src=\"$img\"><br>";
    4. } 
    И создай там-же, где у тебя options лежит, каталог /file/, для которого установи права на запись.

    На почту будут приходить не сами файлы, а ссылки вида <img src="адрес сайта/order/web/img/file/1335298540300-400.png">

    Добавлено спустя 13 минут 31 секунду:
    Если хочешь чтобы именно файл отправлялся по почте, а не ссылка на него - надо файл как-то перекодировать в бинарный вид и отправить в заголовке Content-Disposition: attachment; filename="image.jpg"

    получится что-то типа

    Код (Text):
    1. Content-Disposition: attachment; filename="WinRAR archive.rar"
    2.  
    3. UmFyIRoHAM+QcwAADQAAAAAAAABiIHQgkDIAegAAANsAAAACtqzC3VOUlEAdMw0AIAAAAGNzc1xz
    4. dHlsZS5jc3MA8CANcwmVWMj+DXa0HweB/si3CuEmz4hJP4KjGRJGhQpfd7hApWISO7Qd+9z7w4Hf
    5. LuHPsPg+8LBeDMX+qOvTI7rvzKTvn5JXOmlog6cbnN8MGlLVtcULa4DVa57+wPVGqb+S+8h0Ohau
    6. FpnGZERuKo67SG/YTASBZvP91JfEaxV0IJA2AMEAAADyAAAAAhN5sb21ipRAHTMRACAAAABjb25m
    7. aWdcY29uZmlnLnBocADwcN5HCZkBCJfdV7... дох*я такого кода...dGVtcFxmaWxlcwDwsH
    8. 4JAoAAAAAAAAAAAAAgAAAAAck5RAFDADABAAAABjc3MAsMCxb48TdOCQKwAAAAAAAAAAAAIAAAAA
    9. MXiUQBQwBgAQAAAAY29uZmlnAPDwvFdxjXTgkCoAAAAAAAAAAAACAAAAAJdelEAUMAUAEAAAAGZp
    10. bGVzAPCwc17XwnTgkCkAAAAAAAAAAAACAAAAAIZ4lEAUMAQAEAAAAHRlbXAAsIAaBsQ9ewBABwA=
    11. ------=_20120420183554_74536--
    за бесплатно я е*ал

    Добавлено спустя 14 минут 5 секунд:
    парочка фиксов
    это
    Код (PHP):
    1. <form action="options.php" method="post"> 
    меняем на это
    Код (PHP):
    1. <form action="options.php" method="post" enctype="multipart/form-data"> 
    здесь:
    Код (PHP):
    1. $file_mess[]=$_SERVER['PHP SELF']."/file/".$file['name']; 
    убираем слэш
    Код (PHP):
    1. $file_mess[]=$_SERVER['PHP SELF']."file/".$file['name']; 
    и здесь (если пользователь не загрузил файл - будет ошибка):
    Код (PHP):
    1. foreach($file_mess as $img){
    2.         $mes.="<img src=\"$img\"><br>";
    3. } 
    пишем так:
    Код (PHP):
    1. if($file_mess){
    2.     foreach($file_mess as $img){
    3.         $mes.="<img src=\"$img\"><br>";
    4.     }
    5. } 
     
  7. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    На всякий случай предупреждаю, что если вот в таком виде добавить в форму возможность отправки файлов - получим огромную такую дыремень, через которую можно преспокойно загрузить shell-файл.

    примерно вот такой:
    [​IMG]

    Добавлено спустя 4 минуты 49 секунд:
    Чтобы такого не произошло - на каталог, в который пользователь загружает файлы, надо поставить права доступа 666
     
  8. demettriss

    demettriss Активный пользователь

    С нами с:
    24 апр 2012
    Сообщения:
    9
    Симпатии:
    0
    http://violetsun.ru/order/web/001.php
    куда то делось - "Ваше имя.."

    Добавлено спустя 11 минут 34 секунды:
    multipart/form-data - кавычки после не стояли....
    поставил....
    а теперь выдает после отправки - Warning: rename(/tmp/phppmOPLn,file/1335310236logo_violetsun_callback.png) [function.rename]: Permission denied in /var/www/u2640190/data/www/violetsun.ru/order/web/options.php on line 15

    Warning: rename(/tmp/phpchHk7g,file/1335310236logo_violetsun_88-31.png) [function.rename]: Permission denied in /var/www/u2640190/data/www/violetsun.ru/order/web/options.php on line 15

    Warning: rename(/tmp/phpxRTPsa,file/1335310236logo_violetsun.png) [function.rename]: Permission denied in /var/www/u2640190/data/www/violetsun.ru/order/web/options.php on line 15

    Добавлено спустя 1 минуту 10 секунд:
    ооо - решил....
    поставил 766 на папку... с файлами...
    с такими правами шел залить можно?...

    Добавлено спустя 12 минут 23 секунды:
    [​IMG]
    ээээ.....
    тут такое дело...
    пусто в каталоге с файлами...
    и...
    ссылка не полная получается....
    у меня таких форм много будет...
    отдельно...
    так вот как узнать какой файл с какого каталога скачивать...
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А я бы так никогда бы не сделал =)
    Говно...
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а как бы ты сделал?
     
  11. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    html-программист, герой дня просто!
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нефик хранить файлы так, как они присланы =)
     
  13. demettriss

    demettriss Активный пользователь

    С нами с:
    24 апр 2012
    Сообщения:
    9
    Симпатии:
    0
    блииин....
    где поискать тогда уже сделанное и работающее...
    а то гугл что то тормозит по нормальности ответа...
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нигде. надо завести таблицу в бд. файлы складывать как обычно, только под именем от функции unicid(), а настоящее имя файла совать в БД равно как и его миметип.

    отдавать скриптом viewtopic.php?f=2&t=13296
     
  15. demettriss

    demettriss Активный пользователь

    С нами с:
    24 апр 2012
    Сообщения:
    9
    Симпатии:
    0
    помочь можешь?
    я в ПХП чайнище
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а что тут сложного?
    первый шаг - получаем значение функции unicid(). это просто рандомные символы.
    второй - получаем миметип и имя файла из файла или из $_FILES
    третий - заносим в бд unicid, миметип и имя файла
    четвертый - копируем файл в папку с файлами под именем из unicid

    побьеда.
     
  17. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Вчера засуспендили http://xcont.com . За то, что выложил скрипт на сайт, чтобы сделать скрин для этого форума.
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    твой собственный сайт?
     
  19. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev