За последние 24 часа нас посетили 49805 программистов и 1757 роботов. Сейчас ищут 744 программиста ...

Подскажите как исправить ошибку

Тема в разделе "PHP для новичков", создана пользователем Extremist, 29 янв 2011.

  1. Extremist

    Extremist Активный пользователь

    С нами с:
    18 авг 2009
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Новосибирск
    Добрый день.
    Я перенес php-скрипт сттуса своего сервера PvPGN на joomla и подключил его через специальный модуль. настроил, но
    скрипт работает но по мимо нужной информации стал выводить вот такие предупреждения
    Код (Text):
    1.  
    2. Notice: Undefined index: USERS in C:\Inetpub\www\www\bnet\status.php on line 179
    3. Notice: Undefined index: GAMES in C:\Inetpub\www\www\bnet\status.php on line 179
    при этом если игра создана и есть игроки, то этих предупреждений (ошибок нет)

    в самом status.php эта строка содержит:
    Код (Text):
    1.  
    2. if ($status_array[$type] == true) {
    подскажите как убрать эту ошибку или предупреждение :?:
     
  2. LeoK

    LeoK Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    43
    Симпатии:
    0
    Ищите в скрипте
    Код (Text):
    1. error_reporting(...)
    исправьте на
    Код (Text):
    1. error_reporting(0)
     
  3. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    попробуй заменить на
    Код (Text):
    1. if (isset($status_array[$type]) && $status_array[$type] == true) {
     
  4. Extremist

    Extremist Активный пользователь

    С нами с:
    18 авг 2009
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Новосибирск
    спасибо вроде бы помогло
     
  5. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    вполне собаки хватило бы в данном случае. [​IMG]
     
  6. Extremist

    Extremist Активный пользователь

    С нами с:
    18 авг 2009
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Новосибирск
    еще одна проблемка, есть скриптик - ротатор картинок, такого содежания
    Код (Text):
    1.  
    2. <?php
    3. $folder=opendir("./ads"); //Открываем директорию с баннерами
    4. while ($file = readdir($folder)) //Прочитаем все содержимое директории banner
    5. $names[count($names)] = $file; //Каждый баннер загоняем в массив
    6. closedir($folder); //Закрываем директорию
    7. sort($names); //Отсортируем весь массив с баннерами
    8. //Если попались не графические файлы уберем их все, и посчитаем сколько всего у нас баннеров в директории banner
    9.  
    10. $tempvar=0;
    11.  
    12. for ($i=0;$names[$i];$i++){
    13.  
    14. $ext=strtolower(substr($names[$i],-4));
    15.  
    16. if ($ext==".jpg"||$ext==".gif"||$ext=="jpeg"||$ext==".png"){$names1[$tempvar]=$names[$i];$tempvar++;}
    17.  
    18. }
    19. srand ((double) microtime() * 1000000000000); //Раскрутим случайное число
    20. $rand_keys = array_rand ($names1, 2); //Выберем один из баннеров
    21. $img=$names1[$rand_keys[0]]; //У выбраного баннера посмотрим его местонахождение
    22.  
    23. ?>
    так вот вставляя в блок-модуль в джумле выдает похожую ошибку, но не могу догнать что не так, вроде бы в модуле на нюке нормально работает а на joomla выдает (через плагин)
    Код (Text):
    1.  
    2. Notice: Undefined variable: names in C:\Inetpub\www\www\rotator.php on line 4
    3.  
    4. Notice: Undefined offset: 163 in C:\Inetpub\www\www\rotator.php on line 11
    хотя картинки меняет...подскажите что к нему дописать?
     
  7. Extremist

    Extremist Активный пользователь

    С нами с:
    18 авг 2009
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Новосибирск
    Я так предполагаю, что нужно определить переменные, в первом случае

    $name="";


    а вот как быть со вторым предупреждением?
    Код (Text):
    1. Notice: Undefined offset: 163 in C:\Inetpub\www\www\rotator.php on line 11
    отключить вывод ошибок в php.ini или в файле или в .htaccess вставить строку

    php_flag error_reporting 0 ????
    кто что думает?
     
  8. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1)Notice: Undefined variable: names in C:\Inetpub\www\www\rotator.php on line 4
    при первой итерации вызывает ошибку выражение count($names)- используется неопределенная переменная
    для исправления вставляешь строку
    PHP:
    1.  
    2. $names=array();
    3. $names[count($names)] = $file; //Каждый баннер загоняем в массив
    4.  
    2)Notice: Undefined offset: 163 in C:\Inetpub\www\www\rotator.php on line 11 - ошибку вызывает последняя итерация- неопреден следующий элемент массива
    исправляется так:
    PHP:
    1.  
    2. $n=sizeof($names);
    3. for ($i=0;$i<$n;$i++){
    4.  
     
  9. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Попоооооов!
     
  10. Extremist

    Extremist Активный пользователь

    С нами с:
    18 авг 2009
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Новосибирск
    если делаю как вы говорите то срипт перестает работать и выводит в модуле
    Код (Text):
    1.  
    2.  
    3. Warning: array_rand() [function.array-rand]: First argument has to be an array in C:\Inetpub\www\www\rotator.php on line 20
     
  11. Extremist

    Extremist Активный пользователь

    С нами с:
    18 авг 2009
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Новосибирск
    Пробовал и
    ini_set(‘display_errors’, ‘0’);
    ini_set(‘display_startup_errors’, ‘0’);



    тоже не помогает, блин ну выручите уже кто-нибудь
     
  12. Extremist

    Extremist Активный пользователь

    С нами с:
    18 авг 2009
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Новосибирск
    догнал как пофиксить
    Код (Text):
    1.  
    2. for ($i = 0; $file = readdir($folder); ++$i) //Прочитаем все содержимое директории banner
    3. $names[$i] = $file; //Каждый баннер загоняем в массив
    и подсказанное тут
    Код (Text):
    1.  
    2. $n=sizeof($names);
    3.  for ($i=0;$i<$n;$i++){
    и все на ура работает