У меня ICQ bot. каждое входящие сообщение записывается как массив данных (от кого, текст сообщения, кодировка, и еще 6 параметров.) Когда отправляешь на него сообщение в логе вот выдает какую ошибку: Код (Text): ... isConnected() isConnected() isConnected() isConnected() isConnected() isConnected() Message: test message)))))==) Encode: ASCII Notice: Undefined variable: els in /var/www/ICQ/base_functions.inc on line 27 End: test message)))))==) isConnected() Notice: Undefined index: message in /var/www/ICQ/start.php on line 48 isConnected() isConnected() isConnected() ... isConnected() - раз в 10 секунд появляется. Это в цикле бот поддерживает свою долговременную работоспособность (для тех кто не имел дело с ботами). Message: test message)))))==) - по факту приходящее сообщение End: test message)))))==) - сообщение после перекодировки в UTF-8 27 строка base_functions.inc: Код (Text): print "End: $text<br>$els<br>"; вся функция перекодировки: Код (Text): function read_msg($msg){ $m = $msg['message']; $e = $msg['encoding']['numset']; print "<br>Message: $m <br>Encode: $e <br>"; if (isset($msg['encoding'])) { if ($msg['encoding']['numset'] == 'UNICODE') { //$msg['realmessage'] = $msg['message']; $text = $msg['message'] = mb_convert_encoding($msg['message'], 'UTF-8', 'UTF-16'); $els = "isset || $e || MSG = $text<br>"; } if ($msg['encoding']['numset'] == 'ASCII') { //$msg['realmessage'] = $msg['message']; $text = $msg['message'] = mb_convert_encoding($msg['message'], 'UTF-8', 'cp1251'); } } else { $text = iconv("cp1251", "UTF-8", $msg['message']); $els = "Not isset<br>"; } $text = trim($text); $text = substr($text,0,2000); print "End: $text<br>$els<br>"; return $text; } 48 строка start.php: Код (Text): if ($msg != 0 && $msg !== $msg_old && $msg['message'] != '' && isset($msg['message']) && isset($msg['type']) && $msg['type'] == 'message' && isset($msg['from'])) { Кстати эта 48 строка - проверка стоит перед функцией чтения и перекодировки сообщения: Код (Text): if ($msg != 0 && $msg !== $msg_old && $msg['message'] != '' && isset($msg['message']) && isset($msg['type']) && $msg['type'] == 'message' && isset($msg['from'])) { //$message = $msg['message']; echo $icq->error; $icq->error = ''; $message = read_msg($msg); ... т.е. по идее все проверки которые по идее должны быть пройдены (все что нашел в интернете) я прописал. Как бороться с Notice: Undefined index? помогите плз. ЗЫ не удивлюсь если упустил какую-нибудь очевидную ошибку.
tommyangelo, спасибо! помогло, более того еще раз убедился в своей невнимательности. Notice: Undefined variable: els in /var/www/ICQ/base_functions.inc on line 27 эта ошибка из-за того что нигде не определял $els Т.е.: print $els; // выдаст ошибку если до этого даже намека на $els не было. $els = 0; print $els; // это уже абсолютно безоговорочно верно.