У меня есть следующий пример кода upload3.php:
<html> <head> <title>PHP Form Upload</title> </head> <body> <form method='post' action='upload3.php' enctype='multipart/form-data'> Select a File: <input type='file' name='filename' size='10' /> <input type='submit' value='Upload' /> </form> <?php if (isset($_POST['submit'])) { echo "isset submit"; } else { echo "NOT isset submit"; } ?> </body> </html>
Код всегда возвращает «NOT isset submit». Почему это происходит? Потому что тот же скрипт upload3.php называет себя?
У вас нет кнопки отправки:
+ Изменить
<input type='submit' value='Upload' />
Для того, чтобы:
<input type='submit' value='Upload' name="submit"/>
Две вещи:
При использовании массивов вы захотите попробовать array_key_exists вместо isset. PHP может иметь какое-то странное поведение при использовании isset в элементе массива.
http://www.php.net/manual/en/function.array-key-exists.php
if (array_key_exists ('submit', $ _POST) {}
Во-вторых, вам нужен атрибут имени на вашей кнопке («name =« submit »)
Потому что у вас нет элемента формы, name
которого submit
.
Попробуйте использовать var_dump($_POST)
чтобы увидеть ключи, которые определены.
Обратите внимание, что файлы являются исключением; они не включены в $_POST
; они хранятся в файловой системе, и они являются метаданными (местоположение, имя и т. д.) в $_FILES
.
Попробуйте посмотреть REQUEST_METHOD
и посмотреть, есть ли это POST. Это немного лучше.
<input type='submit' value='Upload' />
должно быть
<input type='submit' value='Upload' name='subname'/>
и это имя должно быть в $ _POST ['']
это будет выглядеть
if (isset($_POST['subname'])) { echo "isset submit"; } else { echo "NOT isset submit"; }