У меня есть следующий пример кода 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"; }