Здрасьте!Тут такая вот проблема: я плохо знаю PHP и скачал шаблон, основные ошибки исправил (О великий Google!), но осталась последняя которой не нашел разумного объяснения в интернете. При загрузке ЛК на сайте пишет: Notice! Undefined index: file in ... on ... . Вот PHP код #1: Код (PHP): <? $ajax_file = ''; /* Защита от XSS, SQL инъекций */ foreach($_POST as $key=>$val) if(!is_array($val)) $_POST_REAL[$key] = strip_tags(mysql_real_escape_string($val)); /* Защита от XSS, SQL инъекций */ if ( $cfg['unban_price'] ) { $user['ban_blocked'] = mysql_num_rows(mysql_query("SELECT `name` FROM `banlist` WHERE `name` = '{$user['name']}'")); $price_unban = $cfg['unban_price'] + $user['ban_count'] * $cfg['unban_next_price']; } /* Получение статусов из файла и их вывод */ $file_status = file_get_contents($cfg['folder_secret'].'status.txt'); if ( preg_match_all('/#(\d+)(.*)/', $file_status, $status_info) ) { foreach($status_info[2] as $key=>$val) { $status_id = $status_info[1][$key]; $status[$status_id] = explode('|', trim($status_info[2][$key])); if ( !$ajax_file && $status[$status_id][2] != -1 || $user['user_group_admin'] ) $tpl_set['statuses'] .= ' <div class="lk-miniblock"> <table> <td width="100"><p class="lk-h3">'.$status[$status_id][0].'</p></td> <td><button class="button" onclick="buyStatusId('.$status_id.')">'.($user['group_id'] != $status_id ? 'Купить за '.$status[$status_id][2] : 'Продлить за '.($status[$status_id][2]-$status[$status_id][3])).'р</button></td> '.($user['user_group_admin'] ? '<td><button title="Редактировать" class="button" onclick="formStatusId('.$status_id.')">*</button></td>' : false).' </table> </div> '; } } /* Получение статусов из файла и их вывод */ Вот текст его ошибки: Notice: Undefined index: statuses in /home/u486142116/public_html/lk/general.php on line 23 Вот PHP код #2: Код (PHP): <? $tpl_set = array(); require_once('config.php'); require_once('general.php'); if ( file_exists('send_get_lk.php') ) include('send_get_lk.php'); if ( $user['user_group_admin'] && $cfg['lk_new_version_info'] ) { $arr = @explode(' | ', file_get_contents($cfg['lk_new_version_info'])); if ( count($arr) > 2 && $arr[0] != $cfg['lk_version'] ) $message = 'Вышла новая версия Личного Кабинета v'.$arr[0].'. [url="'.$arr[1].'"]Скачать[/url] '.$arr[2]; } /* Делает авторизацию в ЛК */ if ( !$user['name'] ) { if ( !$cfg['id_session'] ) include('login.php'); exit(); } $path_skin = $cfg['path_skin'].$user['name'].'.png'; $path_cloak = $cfg['path_cloak'].$user['name'].'.png'; if ( file_exists($path_skin) ) $tpl_set['skin_name'] = $user['name']; else $tpl_set['skin_name'] = 'default'; /* Загрузка скинов/плащей и HD скинов/ HD плащей */ if (is_uploaded_file($_FILES['file']['tmp_name'])) { $imgsize = getimagesize($_FILES['file']['tmp_name']); if ( $_FILES['file']['size'] < $cfg['file_maxsize']*1024*1024 && $_FILES ['file']['type'] == 'image/png' ) { if ( $_POST_REAL['upload-skin'] ) if ( $imgsize['0'] == 64 && $imgsize['1'] == 32) { if ( $status[$user['group_id']][5] && move_uploaded_file($_FILES['file']['tmp_name'], $path_skin) ) $message = 'Ваш скин успешно загружен.'; } else if ( $imgsize['0'] == 256 && $imgsize['1'] == 128 || $imgsize['0'] == 1024 && $imgsize['1'] == 512 ) { if ( $status[$user['group_id']][7] && move_uploaded_file($_FILES['file']['tmp_name'], $path_skin) ) $message = 'Ваш HD скин успешно загружен.'; } else $message = 'Неверные размеры скина.'; else if ( $_POST_REAL['upload-cloak'] ) if ( $imgsize['0'] == 64 && $imgsize['1'] == 32 || $imgsize['0'] == 22 && $imgsize['1'] == 17) { if ( $status[$user['group_id']][6] && move_uploaded_file($_FILES['file']['tmp_name'], $path_cloak) ) $message = 'Ваш плащ успешно загружен.'; } else if ( $imgsize['0'] == 512 && $imgsize['1'] == 256 ) { if ( $status[$user['group_id']][7] && move_uploaded_file($_FILES['file']['tmp_name'], $path_cloak) ) $message = 'Ваш HD плащ успешно загружен.'; } else $message = 'Неверные размеры плаща.'; } else $message = 'Файл должен быть формата .png и весить не более '.$cfg['file_maxsize'].'Mb.'; } /* Загрузка скинов/плащей и HD скинов/ HD плащей */ $message = ''; if ( $message ) $tpl_set['message'] = '<div class="alert">'.$message.'</div>'; mysql_close(); И, соответственно, ошибка к нему: Notice: Undefined index: file in /home/u486142116/public_html/lk/index.php on line 27 Подскажите, что такое вообще индекс и как исправить? (Я, как уже написал выше, курица в PHP)
Произошло обращение к ключу индекса массива который отсутствует в массиве. https://secure.php.net/manual/ru/language.types.array.php Если в $tpl_set массив, можно инициализировать ключ так $tpl_set['statuses'] = ''; перед $tpl_set['statuses'] .= .... ещё можно проверять есть ли массив и только после этого к нему обращаться Код (PHP): if( is_array($tpl_set) && isset($tpl_set['statuses']) ) { $tpl_set['statuses'] .= '...... }
Спасибо Денис! Помогло, но что делать с ошибкой в index.php? (Попробовал проделать тоже самое, но не помогло, а наоборот вызвало ещё одну ошибку)
Сюда if (is_uploaded_file($_FILES['file']['tmp_name'])) добавить if ((isset($_FILES) && is_array($_FILES) && isset($_FILES['file']) && is_uploaded_file($_FILES['file']['tmp_name']))
Не помогло. Выдает ошибку: Parse error: syntax error, unexpected '{' in /home/u486142116/public_html/lk/index.php on line 26
опачятки if ( isset($_FILES) && is_array($_FILES) && isset($_FILES['file']) && is_uploaded_file($_FILES['file']['tmp_name']) )