Подскажите где ошибка?

363
02 февраля 2017, 03:42

Не пойму, хочу посмотреть значение переменных после отправки формы. обработчик та же страница

echo  $description, $class, $audio,  $answer, $tonality ; 

но всё безуспешно, под конец совсем запутался. Помогите.

<form action="add_material.php" method="post" enctype="multipart/form-data" id="myform"></form>
<!-- кусок таблицы -->
<tr>
              <td><input type="textarea" name="description" form="myform"></td>
              <td><input type="text" name="class" form="myform"></td>
              <td>
                  Аудио (строго mp3)<br>  
              <input name="userfile[]" type="file" form="myform"><br><br>
                  Ответ (строго png)<br>
              <input name="userfile[]" type="file" form="myform"><br>
              </td>
              <td><select required size = "1" name = "tonality" form="myform">
                    <option disabled>Тональность</option>
                    <option value = "C-dur_nastroi.mp3">C-Dur</option>
                    <option value = "d-moll_nastroi.mp3">d-moll</option>
                  </select></td>
              <td><input type="submit" name="add"  form="myform"/> </td>
            </tr>
             <?php  
                if ( isset( $_POST['description'] ) and isset( $_POST['class'] ) and isset( $_POST['userfile[0]'] ) and isset( $_POST['userfile[1]'] ) and isset( $_POST['tonality'] )) {
                $description = $_POST['description'];  
                $class = $_POST['class'];
                $audio = $_POST['userfile[0]'];
                $answer = $_POST['userfile[1]'];
                $tonality = $_POST['tonality'];
                echo  $description, $class, $audio,  $answer, $tonality ;    
                }
?>
Answer 1

Потому что файлы прилетают в глобальный массив $_FILES, а не в $_POST

При этом будет даже не так

$_FILES['userfile[0]']

а вот так

$_FILES['userfile']

Если конкретно то распечатка массива $_FILES['userfile'] будет выглядеть примерно так:

Array
(
    [userfile] => Array
        (
            [name] => Array
                (
                    [0] => musicName1.mp3
                    [1] => musicName2.mp3
                )
            [type] => Array
                (
                    [0] => audio/mp3
                    [1] => audio/mp3
                )
            [tmp_name] => Array
                (
                    [0] => W:\userdata\temp\phpC521.tmp
                    [1] => W:\userdata\temp\phpC63B.tmp
                )
            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                )
            [size] => Array
                (
                    [0] => 14539039
                    [1] => 10321791
                )    
        )    
)

Отсюда и не отрабатывают ваши условия и поэтому ничего не печатает.

На будущее: подучите основы и еще выучите такие хорошие функции как var_dump и print_r для того, чтобы смотреть что где пришло

Answer 2

Тег формы, должен закрываться после окончания всех инпутов как минимум =)

READ ALSO
Вопрос по Simple HTML DOM

Вопрос по Simple HTML DOM

Доброго времени сутокСобственно в чем проблема, элементы я с горем пополам получаю

424
Как сделать relation с оператором like?

Как сделать relation с оператором like?

Здравствуйте, скажите пожалуйста, как настроить реляцию таким образом, что бы сопоставление реляции работало с оператором like, а не where, дело...

455
Не получается обновить запись в бд

Не получается обновить запись в бд

Судя по всему функция mquery только возвращает замененный SQL запрос, но не выполняет егоНеобходимо в конце функции запускать SQL запрос, например...

424
Сортировка данных из mysql

Сортировка данных из mysql

Я учусь, поэтому вопрос может показаться глупым )) Есть скрипт, который выводит из базы mysql данные, все работает, только есть один момент - рабочая...

337