Перейти к содержимому



Добавление полей в форму обратной связи

#1 Thrash

Thrash
  • Пользователь PRO
  • 620 сообщений
  • Репутация: 53
0

Отправлено 22 Июль 2014 - 20:06

Здравствуйте! Мне необходимо добавить нужные мне поля в форму обратной связи + сделать возможность прикрепления изображений. Как это сделать?

 

Заранее спасибо! 


 

 

  • 0
Изображение


#2 Thrash

Thrash
    Topic Starter
  • Пользователь PRO
  • 620 сообщений
  • Репутация: 53

Отправлено 24 Июль 2014 - 17:53

Понял я, как добавлять поля в форму обратной связи. Сейчас борюсь над прикреплением файла. Хэлп ми плиз!

 

в шаблоне фидбэка я нашкреб такой вот код:

<tr>
<td>Прикрепить фото</td>
<td action="./uploads/uploadfile.php" method="post" enctype="multipart/form-data"></td>
<td><input type="file" name="userfile" id="file"></td>  
</tr>

./uploadfile.php — файл, ответственный за обработку файлов.

userfile — имя самого поля (в шаблон эмэйла и в модуль я его уже добавил)

 

PHP код выглядит так:

<?php

    $allowed_filetypes = array('.jpg','.gif','.bmp','.png','.jpeg'); // Здесь я перечислил допустимые типы файлов

 
    $max_filesize = 524288; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).

 
    $upload_path = './uploads/filess/'; // папка, куда грузятся прикрепленные фото

   
    $filename = $_FILES['userfile']['name']; // В переменную $filename заносим точное имя файла (включая расширение).

 
    $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.

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


    if(!in_array($ext,$allowed_filetypes))

    die('Данный тип файла не поддерживается.');

   
    // Теперь проверим размер загруженного файла и если он больше максимально допустимого, то прерываем выполнение программы и выдаем сообщение.

  
    if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)

    die('Файл слишком большой.');

 
    // Проверяем, доступна ли на запись папка, определенная нами под загрузку файлов (папка files). Если вдруг недоступна, то выдаем сообщение, что на папку нужно поставить права доступа 777.


    if(!is_writable($upload_path))

    die('Невозможно загрузить файл в папку. Установите права доступа - 777.');

 
    // Загружаем файл в указанную папку.

    if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))

 
    echo 'Ваш файл успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>'; 

    else

    echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
      
 ?>

Пример взят из учебника и "подпилен" под себя.

 

У меня не работает (


Шаблон эмэйл работает.

В форме обратной связи все отображается.

Скрипт не работает.


  • 0
Изображение


#3 Thrash

Thrash
    Topic Starter
  • Пользователь PRO
  • 620 сообщений
  • Репутация: 53

Отправлено 24 Июль 2014 - 18:09

Сейчас подпилил дизайн, смотрится вообще шикарно! Вот только неработоспособность скрипта омрачает (


  • 0
Изображение


#4 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 24 Июль 2014 - 22:00

Так что файл не загружается или что не работает?


  • 0

#5 Thrash

Thrash
    Topic Starter
  • Пользователь PRO
  • 620 сообщений
  • Репутация: 53

Отправлено 24 Июль 2014 - 23:10

Ixman, не работает сам скрипт. то ли я неправильно путь прописываю, не могу понять, в чем дело. 


  • 0
Изображение


#6 Thrash

Thrash
    Topic Starter
  • Пользователь PRO
  • 620 сообщений
  • Репутация: 53

Отправлено 24 Июль 2014 - 23:27

Ixman, загружаю текстовый файл, который запрещал загружать, в письме приходит только имя данного файла, а в нужной папке на сервере его нет

Пока уберу хтмл код с шаблона, надеюсь, кто-то поможет решить проблему


  • 0
Изображение


#7 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 25 Июль 2014 - 15:02

$upload_path = $_SERVER['DOCOMENT_ROOT'] . '/uploads/filess/'; // папка, куда грузятся прикрепленные фото 

 

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


  • 0

#8 buildbody93

buildbody93
  • Пользователь
  • 33 сообщений
  • Репутация: 0

Отправлено 25 Июль 2014 - 17:25

Я лично предпочитаю СМS wordpress :)


  • 0

#9 Thrash

Thrash
    Topic Starter
  • Пользователь PRO
  • 620 сообщений
  • Репутация: 53

Отправлено 25 Июль 2014 - 21:59

buildbody93, спасибо за помощь! Награждаю вас в номинации "лучший совет года". 

 

***

 

 

 


$_SERVER['DOCOMENT_ROOT'] . '/uploads/filess/'

Спасибо, обязательно попробую!


Сообщение отредактировал Thrash: 25 Июль 2014 - 22:00

  • 0
Изображение


#10 Thrash

Thrash
    Topic Starter
  • Пользователь PRO
  • 620 сообщений
  • Репутация: 53

Отправлено 26 Июль 2014 - 10:19


$upload_path = $_SERVER['DOCOMENT_ROOT'] . '/uploads/filess/';

 

попробовал — безрезультатно


  • 0
Изображение


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru