Notice: Undefined index:

linpc

Гуру форума
Регистрация
6 Апр 2012
Сообщения
178
Реакции
55
Notice: Undefined index: id in /var/www/adminlinpcrus/data/www/gamele.ru/inc/battle.php on line 40
Notice: Undefined index: id in /var/www/adminlinpcrus/data/www/gamele.ru/inc/battle.php on line 49
if($p['id'] == $player['id']){ //40
$dmg = $p['dmg']; //41
} //42
$livg1.=$z.'['.$p['type'].',"'.$p['login'].'",'.$p['level'].','.$p['sklon'].',"'.(($p['clan_id']=='chaos')?'':$p['clan_gif']).'",'.$p['hp'].','.$p['hp_all'].','.$p['id'].']'; //49
 
Как уже много раз говорилось, нотис - это предупреждение, а не ошибка. Это означает, что переменная не задана ясно и с ней могут быть проблемы.

Лечится простым отключением нотисов. Поищите по форуму - тема поднималась очень много раз.
 
Как уже много раз говорилось, нотис - это предупреждение, а не ошибка. Это означает, что переменная не задана ясно и с ней могут быть проблемы.

Лечится простым отключением нотисов. Поищите по форуму - тема поднималась очень много раз.
так неправильно делать, отключать нотисы.

undefined index это по сути отсутсвие значения по ключу 'id' либо в массиве $p либо в $player, но судя по другой строке это массик $p не имеет такого ключа
 
Как уже много раз говорилось, нотис - это предупреждение, а не ошибка. Это означает, что переменная не задана ясно и с ней могут быть проблемы.

Лечится простым отключением нотисов. Поищите по форуму - тема поднималась очень много раз.
Думаю все же это может влиять на проект
 
Можно добавить в .htaccess что-то вроде (уровень ошибок подбирать по усмотрению)
Код:
php_flag display_errors on
php_value error_reporting "E_ALL & ~E_NOTICE"

или в php скрипт
Код:
error_reporting  (E_ALL & ~E_NOTICE);

Лечится простым отключением нотисов. Поищите по форуму - тема поднималась очень много раз.
Вообще, я бы не стал называть это "лечением". В идеале - разобраться, какие переменные должны быть установлены, и почему они не установлены. В будущем (если проект пойдёт) есть шанс поплатиться за такое "лечение"..

linpc, раз уж переписываешь - переписывай по уму.. или хотя бы фиксируй, где такие моменты есть... на будущее.
 
так неправильно делать, отключать нотисы.

undefined index это по сути отсутсвие значения по ключу 'id' либо в массиве $p либо в $player, но судя по другой строке это массик $p не имеет такого ключа
Вот полностью код. где функция $p задается
PHP:
$sql=mysql_query("SELECT `arena`.`id_battle`, `arena`.`t1`, `arena`.`t2`, `arena`.`vis`, `arena`.`type`, `arena`.`timeout`, `arena`.`travma`, `fight_users`.`side`, `fight_users`.`uid`, `user`.`sklon`, `user`.`clan_gif`, `user`.`level`, `user`.`login`, `fight_users`.`hp`, `user`.`hp_all`, `fight_users`.`dmg`, `user`.`type`, `user`.`clan_id`,`user`.`invisible` FROM `user`,`arena` LEFT JOIN `fight_users` ON `arena`.`id_battle` = `fight_users`.`battle` WHERE `fight_users`.`id` = `user`.`id` and `arena`.`id_battle` = '".$player['battle']."'");
if(mysql_num_rows($sql) != 0){
    while ($p = mysql_fetch_assoc($sql)) {
        if($p['t2'] < (time()-$p['timeout']) and $p['t1'] = $player['side']){
            $vc = scode();
        }else{
            $vc = '';
        }
        if($p['vis'] == 3){
            $vis = 3;
        }
        if($p['id'] == $player['id']){
            $dmg = $p['dmg'];
        }
        if($p['side'] == 1 and $p['hp'] > 0){
            if(isset($livg1)){
                $z=",";
            }
            if($p['type'] == 1){
                if($p['invisible'] < time()){
                    $livg1.=$z.'['.$p['type'].',"'.$p['login'].'",'.$p['level'].','.$p['sklon'].',"'.(($p['clan_id']=='chaos')?'':$p['clan_gif']).'",'.$p['hp'].','.$p['hp_all'].','.$p['id'].']';
                }else{
                    $livg1.=$z.'[4]';
                }
            }else{
                $livg.=$z.'['.$p['type'].',"'.$p['login'].'",'.$p['hp'].','.$p['hp_all'].','.$p['uid'].']';
            }
        }else if($p['side']==2 and $p['hp']>0){
            if(isset($livg2)){
                $z2=",";
            }
            if($p['type']==1){
                if($p['invisible']<time()){
                    $livg2.=$z2.'['.$p['type'].',"'.$p['login'].'",'.$p['level'].','.$p['sklon'].',"'.(($p['clan_id']=='chaos')?'':$p['clan_gif']).'",'.$p['hp'].','.$p['hp_all'].','.$p['id'].']';
                }else{
                    $livg2.=$z2.'[4]';
                }
            }else{
                $livg2.=$z2.'['.$p['type'].',"'.$p['login'].'",'.$p['hp'].','.$p['hp_all'].','.$p['uid'].']';
            }
        }
        if(!isset($fight)){
            $fight = $p['type'].",".$p['timeout'].",".$p['travma'];
        }
    }
}
 
linpc, раз уж переписываешь - переписывай по уму.. или хотя бы фиксируй, где такие моменты есть... на будущее.
и вообще такие имена переменных - это печаль и безысходность
 
Можно добавить в .htaccess что-то вроде (уровень ошибок подбирать по усмотрению)
Код:
php_flag display_errors on
php_value error_reporting "E_ALL & ~E_NOTICE"

или в php скрипт
Код:
error_reporting  (E_ALL & ~E_NOTICE);


Вообще, я бы не стал называть это "лечением". В идеале - разобраться, какие переменные должны быть установлены, и почему они не установлены. В будущем (если проект пойдёт) есть шанс поплатиться за такое "лечение"..

linpc, раз уж переписываешь - переписывай по уму.. или хотя бы фиксируй, где такие моменты есть... на будущее.
Лучше сразу переписывать по уму

и вообще такие имена переменных - это печаль и безысходность
Как это понять
 
Последнее редактирование модератором:
Все просто
PHP:
if(isset($p['id'])  and isset($player['id']) and $p['id'] == $player['id']){ //40
Примерно как то так :)
 
Вот полностью код. где функция $p задается
смотри, у тебя есть запрос
Код:
SELECT `arena`.`id_battle`,
      `arena`.`t1`,
      `arena`.`t2`,
      `arena`.`vis`,
      `arena`.`type`,
      `arena`.`timeout`,
      `arena`.`travma`,
      `fight_users`.`side`,
      `fight_users`.`uid`,
      `user`.`sklon`,
      `user`.`clan_gif`,
      `user`.`level`,
      `user`.`login`,
      `fight_users`.`hp`,
      `user`.`hp_all`,
      `fight_users`.`dmg`,
      `user`.`type`,
      `user`.`clan_id`,
      `user`.`invisible`
FROM `user`,`arena`
LEFT JOIN `fight_users` ON `arena`.`id_battle` = `fight_users`.`battle`
WHERE `fight_users`.`id` = `user`.`id` and `arena`.`id_battle` = '".$player['battle']

где в запросе 'id'? которое потом в массив перейдёт после $p = mysql_fetch_assoc($sql)

и вообще такие имена переменных - это печаль и безысходность
Как это понять
пример абсолютно нечитаемого кода
 
Назад
Сверху