Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2014, 13:25   #1
Glatos
Пользователь
 
Регистрация: 15.07.2011
Сообщений: 25
Восклицание Undefined index

в гугл хроме открываю индекс, всё отоброжается нормально, только сверху оповещеение:
Код:
Notice: Undefined index: id in D:\XAMPP\htdocs\site1\index.php on line 7
все Id подгружаются из файла data.inc.php
как сделать отображение нормальным не отключая оповещения?


PHP код:
//index.php
<?php
include 'lib.inc.php';
include 
'data.inc.php';

$title 'Сайт нашей школы';
$header"$welcome, Гость!";
$id strtolower(trim(strip_tags($_GET['id'])));  ///// <----------- 7стр.
switch($id){
    case 
'about':
        
$title 'О сайте';
        
$header 'О нашейм сайте';
        break;
    case 
'contact':
        
$title 'Контакты';
        
$header 'Обратная связь';
        break;
    case 
'table':
        
$title 'Таблица умножения';
        
$header 'Таблица умножнеия';
        break;
    case 
'calc':
        
$title 'Он-лайн калькулятор';
        
$header 'Калькулятор';
        break;
}

   
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
    <head>
        <title><?php echo $title ?></title>
        <meta http-equiv="content-type"
            content="text/html; charset=windows-1251" />
        <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>

        <div id="header">
            <!-- Верхняя часть страницы -->
            <?php include 'top.inc.php'?>
            <!-- Верхняя часть страницы -->
        </div>

        <div id="content">
            <!-- Заголовок -->
            <h1><?php echo $header ?></h1>
            <!-- Заголовок -->
            <!-- Область основного контента -->
            <?php
            
switch($id){
                    case 
'about': include 'about.php'; break;
                    case 
'contact': include 'contact.php'; break;
                    case 
'table': include 'table.php'; break;
                    case 
'calc': include 'calc.php'; break;
                    default: include 
'index.inc.php';
            }
            
?>
            <!-- Область основного контента -->
        </div>
        <div id="nav">
            <!-- Навигация -->
            
            <!-- Меню -->
        <?php include 'menu.inc.php'?>

            <!-- Меню -->
            <!-- Навигация -->
        </div>
        <div id="footer">
            <!-- Нижняя часть страницы -->
            <?php
            
include 'bottom.inc.php';

            
?>
            <hr>
            
            <!-- Нижняя часть страницы -->
        </div>
    </body>
</html>

PHP код:
//data.inc.php
<?php
$size 
ini_get('post_max_size');
$letter $size{strlen($size)-1};
$size = (int)$size;

switch(
strtoupper($letter)){
    case 
'G'$size *= 1024;
    case 
'M'$size *= 1024;
    case 
'K'$size *= 1024;
}

define('ERR_DRAW_ON_LEFT_MENU',
 
'Извините...');
 
define('ERR_DRAW_ON_BOTTOM_MENU''');
 
//МЕНЮ
$leftMenu = array(       //инициализация массива
                
array('link'=>'Домой''href'=>'index.php'),
                array(
'link'=>'О нас''href'=>'index.php?id=about'),
                array(
'link'=>'Контакты''href'=>'index.php?id=contact'),
                array(
'link'=>'Таблица умножения''href'=>'index.php?id=table'),
                array(
'link'=>'Калькулятор''href'=>'index.php?id=calc')
                );
                
                
/*
* Получаем текущий час в виде строки от 00 до 23
* и приводим строку к целому числу от 0 до 23
*/
$hour = (int)strftime('%H');
$welcome ''//Инициализируем переменную для преведствия
if($hour and $hour 6)
        
$welcome 'Доброй ночи';
 elseif (
$hour >=and $hour <12)
        
$welcome 'Доброе утро';
 elseif (
$hour >=12 and $hour <18)
        
$welcome 'Добрый день';
elseif (
$hour >=18 and $hour <23)
        
$welcome 'Добрый вечер';
 else
        
$welcome 'Доброй ночи';

// Объявление константы
define('COPYRIGHT''Супер Мега Вёб-мастер');

?>
<?php 
// установка локали и выбор значений даты
   
setlocale(LC_ALL"russian");
   
$day strftime('%d');
   
$mon strftime('%B');
   
$year strftime('%Y');
?>
я знаю каратэ, дзюдо, канфу.... и много других страшных слов
Glatos вне форума Ответить с цитированием
Старый 08.08.2014, 13:57   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

line 7:
PHP код:
$id = (!empty($_GET['id'])) ? strtolower(trim(strip_tags($_GET['id']))) : ''
Andkorol вне форума Ответить с цитированием
Старый 08.08.2014, 14:24   #3
Glatos
Пользователь
 
Регистрация: 15.07.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
line 7:
PHP код:
$id = (!empty($_GET['id'])) ? strtolower(trim(strip_tags($_GET['id']))) : ''
вроде подошло, но в учебнике было именно так я написал в начале.
возможно всё-таки ошибка где-то ещё, потому что есть ещё похожая ошибка при загрузке другой страницы. Загружается с того же индекса при нажатии на ссылку таблица умножения (table.php)

Код:
Notice: Undefined variable: cols in D:\XAMPP\htdocs\site1\table.php on line 7

Notice: Undefined variable: rows in D:\XAMPP\htdocs\site1\table.php on line 8

Notice: Undefined variable: color in D:\XAMPP\htdocs\site1\table.php on line 9
при этом всё отображается нормально и дальше страница нормально функцианирует

PHP код:
//table.php
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$cols abs((int) $_POST['cols']);
$rows abs((int) $_POST['rows']);
$color trim(strip_tags($_POST['color']));
}
$cols = ($cols) ? $cols 10;
$rows = ($rows) ? $rows 10;
$color = ($color) ? $color 'green';
?>
            <form action='<?php $_SERVER['REQUEST_URI']?>' method='post'>
                <label>Количество колонок: </label><br />
                <input name='cols' type='text' value="" /><br />
                <label>Количество строк: </label><br />
                <input name='rows' type='text' value="" /><br />
                <label>Цвет: </label><br />
                <input name='color' type='text' value="" /><br /><br />
                <input type='submit' value='Создать' />
            </form>
            <!-- Таблица -->
            
            <?php
            drawTable
($cols$rows$color);
            
?>

            <!-- Таблица -->
файл с функцией таблицы, который подгружается в индексе, думаю дело не в нём

PHP код:
//lib.inc.php

<?php 
    
function drawTable($cols=10$rows=10$color='green'){
                    echo 
"<table border='1'>";
            for(
$tr=1$tr<=$rows$tr++){
                echo 
"<tr>";
                for(
$td=1$td<=$cols$td++){
                if(
$tr == or $td == 1)
                    echo 
"<th style='background:$color'>" $td $tr "</th>";
                else
                    echo 
"<td>" $td $tr "</td>";
                }
                echo 
"</tr>";
            }
            echo 
"</table>";
}

    function 
drawMenu($menu$vertical=true){
        if(!
is_array($menu))
            return 
false;
        
$style '';
        if(!
$vertical)
            
$style " style='display:inline;margin-right:15px'";
        echo 
"<ul>";
foreach(
$menu as $item){
    echo 
"<li$style>";
    echo 
"<a href='{$item['href']}'>{$item['link']}</a>";
    echo 
"</li>";
}
echo 
"</ul>";
return 
true;
}
?>
я знаю каратэ, дзюдо, канфу.... и много других страшных слов

Последний раз редактировалось Glatos; 08.08.2014 в 14:31.
Glatos вне форума Ответить с цитированием
Старый 08.08.2014, 14:47   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Значит, учебник неправильный – выбросить его, найти новый, изданный в этом десятилетии.
Принцип тот же:
PHP код:
$cols = (!empty($cols)) ? $cols 10
$rows = (!empty($rows)) ? $rows 10
$color = (!empty($color)) ? $color 'green'
Andkorol вне форума Ответить с цитированием
Старый 08.08.2014, 17:27   #5
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
line 7:
PHP код:
$id = (!empty($_GET['id'])) ? strtolower(trim(strip_tags($_GET['id']))) : ''
Это можно заметить так:
PHP код:
$id filter_input(INPUT_GET'id'FILTER_SANITIZE_NUMBER_INT); 
$id или будет числом, или будет FALSE (нулём).
ATL вне форума Ответить с цитированием
Старый 08.08.2014, 18:16   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от ATL Посмотреть сообщение
Это можно заметить так:
PHP код:
$id filter_input(INPUT_GET'id'FILTER_SANITIZE_NUMBER_INT); 
$id или будет числом, или будет FALSE (нулём).
Спасибо, но не вижу особого смысла это на это заменять.
Хотя бы даже потому, что из кода ТС очевидно, что в $_GET['id'] ожидается и близко не число.
Andkorol вне форума Ответить с цитированием
Старый 10.08.2014, 04:11   #7
Аlex
Форумчанин
 
Регистрация: 16.11.2006
Сообщений: 175
По умолчанию

это топорный метод в случае с больной головой, но зато он безотказен ..
PHP код:
error_reporting(E_NONE);
ini_set("display_errors"0);// примерно так,  погугли  как  точно )) 
чайник юзеру не товарищ, а сам себе враг...

Последний раз редактировалось Аlex; 10.08.2014 в 04:15.
Аlex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mod_rewrite: все на index.php без www и index.php TrydORgolik PHP 2 18.02.2013 18:19
use of undefined type.. ol-k_34 Общие вопросы C/C++ 0 23.09.2012 22:37
probably it's an undefined var: eax Farrel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.03.2011 19:08
Undefined variable SPY-FeinD PHP 5 27.05.2009 19:41