Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Undefined index
 
 автор: Vados   (04.08.2006 в 17:29)   письмо автору
 
 

Всем привет!
Хотел бы у Вас уточнить, почему не определяется переменная?
Вот сценарий:

<?php
// Если это не корн. каталог - выводим таблицу с позициями серверов
if ($_GET['id_parent'] !=0)
{
    
?>
    <h1>Сайты в каталоге</h1><br>
    // Ссылка на добавление новой позиции сервера
    <a href=addsiteform.php?id_parent=<?echo$_GET['id_parent']?>>Добавить сайт</a>
    <?php
    
//Выбираем из базы LOCATION позиции серверов, относящиеся к текущему каталогу
    
$query "SELECT * FROM lOCATION WHERE ID_CATALOG=".$_GET['id_parent']." ORDER BY POS";
    
$prt mssql_query($query);
    if (
$prt)
    {
        
//Выводим заголовок таблицы
        
echo "<table><tr class='tableheader'>
                <td>Имя</td>
                <td>IP 1</td>
                <td>IP 2</td>
                <td>MAC 1</td>
                <td>MAC 2</td>
                <td>DNS NAME 1</td>
                <td>DNS NAME 2</td>
                <td>Регион</td>
                <td>Адрес</td>
                <td>Комната</td>
                <td>Шкаф</td>
                <td>Дата инст.</td>
                <td>ОС</td>
                <td>Ответственный</td>
                <td>Описание задач</td>
                <td>Примечания</td>
                <td>Цена</td>
                <td>Детальнее</td>
                </tr>"
;
        while (
$par mssql_fetch_array($prt))
        {
            
// Выясняем скрыта ли позиция сервера и выводим управляющие ссылки
                
if ($par['0'] =='0'$showhide "<a href=showsite.php?
                                     id_product="
.$par['id_product']."&
                                     id_parent="
.$_GET['id_parent']."&
                                     id_catalog="
.$cats['id_catalog'].">
                                     Отобразить</a>"
;
                                else 
$showhide "<a href=hidesite.php?
                                      id_product="
.$par['id_product']."&
                                      id_parent="
.$_GET['id_parent']."&
                                      id_catalog-"
.$cats['id_catalog'].">
                                      Скрыть</a>"
;
                
// Определяем регион
                
switch ($par['site'])
                {
                    case 
'Kiev':
                        
$distr "Киев";
                        break;
                    
                    case 
'Dnepropetrovsk':
                        
$distr "Днепропетровск";
                        break;
                    
                    case 
'Odessa':
                        
$distr "Одесса";
                        break;
                    
                    case 
'Lvov':
                        
$distr "Львов";
                        break;                    
                }
                
// Выводим таблицу с позициями серверов
                
echo "<tr>
                        <td>"
.$par['srv']."</td>
                        <td>"
.$par['ip1']."</td>
                        <td>"
.$par['ip2']."</td>
                        <td>"
.$par['mac1']."</td>
                        <td>"
.$par['mac2']."</td>
                        <td>"
.$par['dns1']."</td>
                        <td>"
.$par['dns2']."</td>
                        <td>
$distr</td>
                        <td>"
.$par['adress']."</td>
                        <td>"
.$par['srvroom']."</td>
                        <td>"
.$par['shell']."</td>
                        <td>"
.$par['instdate']."</td>
                        <td>"
.$par['os']."</td>
                        <td>"
.$par['owner']."</td>                        
                        <td>"
.$par['descr']."</td>
                        <td>"
.$par['notes']."</td>
                        <td>"
.$par['cost']."</td>
                        <td>
                            <p>
$showhide<br>
                            <a href=editsiteform.php?
                               id_product="
.$par['id_product']."&
                               id_parent="
.$_GET['id_parent'].">
                               Исправить</a><br>
                            <a href=delsite.php?
                               id_product="
.$par['id_product']."&
                               id_parent="
.$_GET['id_parent'].">
                               Удалить</a></p></td>   
                      </tr>"
;                                            
            }
        }
        
?>
        </table>
           <?php    
    
}
        else echo 
"Это самый верхний каталог - здесь можно вывести отписание.";
        
?>


В браузере у меня отображается:

Notice: Undefined index: id_parent in C:\Test\inventory\site.php on line 3
Это самый верхний каталог - здесь можно вывести отписание.


В чём дело? Подскажите пожалуйста!

   
 
 автор: 1999   (04.08.2006 в 17:32)   письмо автору
 
   для: Vados   (04.08.2006 в 17:29)
 

уровень обработки ошибок ниже ставьте - искать здесь: error_reporting()

   
 
 автор: Vados   (04.08.2006 в 17:48)   письмо автору
 
   для: 1999   (04.08.2006 в 17:32)
 

Каким именно образом?
Необходимо раскомментировать строку, которую вы указали выше?

   
 
 автор: cheops   (05.08.2006 в 11:24)   письмо автору
 
   для: Vados   (04.08.2006 в 17:48)
 

Notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE  

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

   
 
 автор: Иннокентий   (04.08.2006 в 18:16)   письмо автору
 
   для: Vados   (04.08.2006 в 17:29)
 

попробуйте так:

if (!isset($_GET['id_parent'])) echo "error";


Если выведет 'error', значит че-то намудрили выше.

ПС
а может $_POST[] ?

   
 
 автор: RV   (04.08.2006 в 18:34)   письмо автору
 
   для: Иннокентий   (04.08.2006 в 18:16)
 

Vados
вы передали эту самую $_GET['id_parent']? покажите адресную строку.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования