Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.12.2015
Сообщений: 10
1

PHP и Form

21.01.2017, 12:36. Показов 390. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. Столкнулся с такой проблемой. Простейшая форма отправки данных на сервер и вот в чем вся суть, если указываю (enctype="multipart/form-data"), то заливает на сервер файл а в БД имя не ложится, а если убрать это из формы то все наоборот(ну это понятно). В чем может быть прикол??? Почему имя не ложится в базу, при указании (enctype="multipart/form-data") Версия PHP 7.0, может кто сталкивался и знает как это решить. Вот пример кода: Сама форма:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{$ci = &get_instance();}
<div class="tabbable" id="tabs-607836">
    <h2>{tlang('Профіль компанії')}</h2>
    <h4>{tlang('Основні дані')}</h4>
    <hr>
    <p>{if $ci->dx_auth->get_user_id() != $user->id}{$disabled = ' disabled'}{else:}{$disabled = ' '}{/if}
    <form id="nory" name="banner" class="form-horizontal" role="form" action="{site_url('prozorro/profile_update')}" method="POST" enctype="multipart/form-data">
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"> {tlang('Повна назва Банку')} * </label>
            <div class="col-sm-10">
                <input type="text"{echo $disabled} class="form-control" id="inputEmail3" value="{echo $company->name}" name="name" />
            </div>
        </div>
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"> {tlang('ЄДРПОУ Банку')} * </label>
            <div class="col-sm-10">
                <input type="text"{echo $disabled} class="form-control" id="inputEmail3" value="{echo $company->codes}" name="codes" />
            </div>
        </div>
 
        <h4>{tlang('Поштова адреса')}</h4>
        <hr>
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"> {tlang('Країна')} * </label>
            <div class="col-sm-10">
                <input type="text"{echo $disabled} class="form-control" id="inputEmail3" value="{echo $company->country}" name="country" />
            </div>
        </div>
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"> {tlang('Поштовий індекс')} * </label>
            <div class="col-sm-10">
                <input type="text"{echo $disabled} class="form-control" id="inputEmail3" value="{echo $company->address_zip}" name="address_zip" />
            </div>
        </div>
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"> {tlang('Область')} * </label>
            <div class="col-sm-10">
                <select name="address_obl"{echo $disabled} class="form-control">
                    <option value="0"> -- Оберіть область -- </option>
                    <option value="Вінницька область" style=""> Вінницька </option>
                    <option value="Волинська область" style=""> Волинська </option>
                    <option value="Дніпропетровська область" style=""> Дніпропетровська </option>
                    <option value="Донецька область" style=""> Донецька </option>
                    <option value="Житомирська область" style=""> Житомирська </option>
                    <option value="Закарпатська область" style=""> Закарпатська </option>
                    <option value="Запорізька область" style=""> Запорізька </option>
                    <option value="Івано-Франківська область" style=""> Івано-Франківська </option>
                    <option value="Київ" style=""> Київ </option>
                    <option value="Київська область" style=""> Київська </option>
                    <option value="Кіровоградська область" style=""> Кіровоградська </option>
                    <option value="Луганська область" style=""> Луганська </option>
                    <option value="Львівська область" style=""> Львівська </option>
                    <option value="Миколаївська область" style=""> Миколаївська </option>
                    <option value="Одеська область" style=""> Одеська </option>
                    <option value="Полтавська область" style=""> Полтавська </option>
                    <option value="Рівненська область" style=""> Рівненська </option>
                    <option value="Сумська область" style=""> Сумська </option>
                    <option value="Тернопільська область" style=""> Тернопільська </option>
                    <option value="Харківська область" style=""> Харківська </option>
                    <option value="Херсонська область" style=""> Херсонська </option>
                    <option value="Хмельницька область" style=""> Хмельницька </option>
                    <option value="Черкаська область" style=""> Черкаська </option>
                    <option value="Чернігівська область" style=""> Чернігівська </option>
                    <option value="Чернівецька область" style=""> Чернівецька </option>
                    <option value="Україна" style=""> Вся Україна </option>
                </select>
            </div>
        </div>
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"> {tlang('Населений пункт')} * </label>
            <div class="col-sm-10">
                <input type="text"{echo $disabled} class="form-control" id="inputEmail3" value="{echo $company->address_city}" name="address_city" />
            </div>
        </div>
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label"> {tlang('Адреса компанії')} * </label>
            <div class="col-sm-10">
                <input type="text"{echo $disabled} class="form-control" id="inputEmail3" value="{echo $company->address}" name="address" />
            </div>
        </div>
        {if $ci->dx_auth->get_user_id() == $user->id}
        <input type="file" name="file"/>
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <button type="submit" class="btn btn-default"> {tlang('Зберегти')} </button>
            </div>
        </div>{form_csrf()}{/if}
    </form>
    </p>                   
</div>
И скрипт:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public function profile_update(){
            
    $this->load->library('Form_validation');
                
    if ($this->dx_auth->is_logged_in()) {
        
        $val = $this->form_validation;
            
        $val->set_rules('name', lang('name'), 'trim|required|xss_clean');
        $val->set_rules('codes', lang('codes'), 'trim|required|xss_clean');
        $val->set_rules('country', lang('country'), 'required|trim|xss_clean');
        $val->set_rules('address_zip', lang('address_zip'), 'required|trim|xss_clean');
        $val->set_rules('address_obl', lang('address_obl'), 'required|trim|required|xss_clean');
        $val->set_rules('address_city', lang('address_city'), 'required|trim|required|xss_clean');
        $val->set_rules('address', lang('address'), 'required|trim|xss_clean|callback_rules');
            
        $this->db->where('user_id', $this->dx_auth->get_user_id())->update('mod_prozorro_users', array(
            'name' => $_POST['name'], 
            'codes' => $_POST['codes'], 
            'country' => $_POST['country'], 
            'address_zip' => $_POST['address_zip'], 
            'address_obl' => $_POST['address_obl'], 
            'address_city' => $_POST['address_city'], 
            'address' => $_POST['address'],
            'documents' =>$_POST['file']    
        )); 
            
        // Where the file is going to be placed
        $target_path = './uploads/prozorro/users/';
            
        $target_path = $target_path . basename( $_FILES['file']['name']);
        if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
            echo "The file ".  basename( $_FILES['file']['name'])." has been uploaded";
        } else{
            echo "There was an error uploading the file, please try again!";
        }
 
        //redirect(site_url('/prozorro/profile/'.$this->dx_auth->get_user_id().''), 301);
    }
 
    //$this->dx_auth->get_user_id();
    //$this->db->where('id', $id)->update('components', array('autoload' => '1', 'enabled' => '1'));    
}
Как то так
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2017, 12:36
Ответы с готовыми решениями:

PHP + <form>
Добрый день. Создал такую тему потому что несколько вопросов, а раскидывать их по разным темам не...

Php и html form
Добрый день! Возник следующий вопрос: Пишу маленький сайтик, в котором использую HTML Form для...

PHP mail() + form
Здравствуйте. Хочу отправить человеку сообщение на почту с помощью php mail(). Так же, нужно...

Form в php ссылка
Заранее предупрежу, код весь смотреть не нужно. Ошибка в начале в форме (1-4 строка) и в середине...

3
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
21.01.2017, 12:57 2
Цитата Сообщение от kelbas Посмотреть сообщение
PHP
1
'documents' =>$_POST['file']
Если вы убираете enctype, то все данные передаются методом $_POST. И значение file помещается в массив $_POST. Толку от этого никакого, вы получите только ссылку на файл, но не сам файл.

Если вы добавляете enctype, то файл будет отправлен. Информация о нём будет уже не в $_POST, а в $_FILES.

В общем, вам нужно сначала переместить файл в нужное место, а затем ссылку на этот файл записывать в БД.

Цитата Сообщение от kelbas Посмотреть сообщение
PHP
1
move_uploaded_file($_FILES['file']['tmp_name'], $target_path)
Вторым параметром надо передавать полную ссылку на новый файл (который затем будет создан), а не папку.
0
0 / 0 / 0
Регистрация: 21.12.2015
Сообщений: 10
21.01.2017, 13:24  [ТС] 3
В том и прикол, файл должен залить пользователь и он должен лечь а определенную папку, а имя естественно в базу.
0
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
21.01.2017, 14:07 4
kelbas, ок, действуйте.
1
21.01.2017, 14:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2017, 14:07
Помогаю со студенческими работами здесь

JQUERY,PHP CONTACT FORM
Mozhet ktoto pomoch sozdatj contact-form.php fail, pustj otpravlalasj soobshenije na e-mail. ссылка...

PHP + XML = HTML Form
Передо мной стоит следующая задача: нужно сделать динамически создаваемые формы посредством php,...

Php e-mail sending form
Здарвствуйте. У меня єсть форма для отправки письма. К ней я подлючил файл из етой библиотеки...

Вызов php функции через form get
привет. учусь php, есть два файла: index.php &lt;? include 'calc.php'; ?&gt; &lt;html&gt; &lt;head&gt;...

Можно ли разрывать теги <form> php
Ни Хао!!! &lt;form action=result.php method=POST&gt; Здесь выводятся радио-кнопки. &lt;/form&gt; Здесь...

Обработка и отсылка form через php
Добрый день. Есть форма form с некими параметрами. Как пример, платежная форма. Как можно сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru