Попробуйте следующее:
document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};
сначала: попробуйте строгое программирование
error_reporting(E_ALL | E_STRICT);
также вы должны использовать isset для проверки - это индекс для имеющегося массива или нет
if (isset($_POST['submitbtn']) && isset($_FILES['avatar'])) {
// ...
}
также проверить конфигурацию php
file_uploads "1"
upload_max_filesize "2M"
post_max_size "8M"
max_file_uploads 20
Максимальный размер сообщения должен быть больше, чем максимальный размер файла загрузки.
также как ребята сказали чек-форму enctype
это 1 год назад, но вам все равно интересно .. Проверьте этот параметр в PHP.ini: enable_post_data_reading = off Это должно быть: в противном случае $ _FILES будет пустым навсегда. Будет ли PHP читать данные POST. Эта опция по умолчанию. Скорее всего, вы не захотите отключить этот параметр во всем мире. Это заставляет $ _POST и $ _FILES всегда быть пустым.
Вы должны добавить атрибут формы enctype="multipart/form-data"
для загрузки файлов
Для загрузки файлов вы должны использовать enctype в теге формы.
<form enctype="multipart/form-data" action='register.php' method='post'>