Notice: Undefined index:

Тема в разделе "Как сделать...", создана пользователем linpc, 4 сен 2013.

  1. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    179
    Симпатии:
    52
    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
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.038
    Как уже много раз говорилось, нотис - это предупреждение, а не ошибка. Это означает, что переменная не задана ясно и с ней могут быть проблемы.

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

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.722
    Симпатии:
    2.097
    так неправильно делать, отключать нотисы.

    undefined index это по сути отсутсвие значения по ключу 'id' либо в массиве $p либо в $player, но судя по другой строке это массик $p не имеет такого ключа
     
    esche нравится это.
  4. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    179
    Симпатии:
    52
    Думаю все же это может влиять на проект
     
    Шумадан нравится это.
  5. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    360
    Симпатии:
    243
    Можно добавить в .htaccess что-то вроде (уровень ошибок подбирать по усмотрению)
    Код:
    php_flag display_errors on
    php_value error_reporting "E_ALL & ~E_NOTICE"
    или в php скрипт
    Код:
    error_reporting  (E_ALL & ~E_NOTICE);
    Вообще, я бы не стал называть это "лечением". В идеале - разобраться, какие переменные должны быть установлены, и почему они не установлены. В будущем (если проект пойдёт) есть шанс поплатиться за такое "лечение"..

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

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    179
    Симпатии:
    52
    Вот полностью код. где функция $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'] == 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']==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'];
            }
        }
    }
     
    Шумадан нравится это.
  7. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.722
    Симпатии:
    2.097
    и вообще такие имена переменных - это печаль и безысходность
     
  8. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    179
    Симпатии:
    52
    Лучше сразу переписывать по уму

    и вообще такие имена переменных - это печаль и безысходность
    Как это понять
     
    Последнее редактирование модератором: 4 сен 2013
    Шумадан нравится это.
  9. tester1991

    tester1991 PHP МегаМозГ

    Регистр.:
    24 сен 2008
    Сообщения:
    740
    Симпатии:
    174
    Все просто
    PHP:
    if(isset($p['id'])  and isset($player['id']) and $p['id'] == $player['id']){ //40
    Примерно как то так :)
     
  10. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.722
    Симпатии:
    2.097
    смотри, у тебя есть запрос
    Код:
    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)

    пример абсолютно нечитаемого кода