Вверху раздела "Вопросы новичков" есть прикрепленная тема об ошибках.
Цитата:
2) Notice: Undefined index: [index] in [filename] on line [line]
3) Notice: Undefined offset: [number] in [filename] on line [line]
Обе ошибки похожи, и возникают они при обращении к не существующему индексу массива ([index] или [number]) в строке [line] файла [filename], только в первом случае это строковый индекс ($arr['index']), а во втором - числовой ($arr[2]).
Решение: проверить в массиве наличие индекса [index] или [number].
В вашем случае это означает, что в массиве $_SESSION нет индекса 'login'.
Может быть вы ошиблись и должен быть массив _POST или _GET? (Добавление)
Вторая ошибка - это следствие первой. У вас вывод информации из за ошибки начинается раньше, чем идет формирование заголовков.
Читайте "Совершенный код" Макконнелла, затем "Рефакторинг" Фаулера.
За такие советы всегда спасибо. Включу в план.
Мелкий пишет:
Вот глобальная переменная. Гвоздями прибиты эта переменная к этой функции.
Все собственно зависит от удобства и назначения функции или класса. Если нужно с этой функцией работать с разными соединениями - это одно дело. Если это "локальная" функция - специально заточенная под определенную ситуацию, предназначенная для конкретной вещи - например, инкапсулировать часть кода для читаемости логики модуля - то это другое дело.
Мелкий пишет:
Банальное - надо продуктам с полем sale=1 поставить css-класс sale. Ваши действия? Переносить логику отображения в эту функцию?
Повторюсь, зависит от задачи, от условий на момент реализации проекта. Функция ориентирована на конкретный вывод в разных местах - включу туда, если раскладка такова, что функция ориентирована только на получение данных одной таблицы из разных блоков с разным форматированием - разметку буду варьировать на месте вызова.
Прибитая гвоздями глобальная переменная, я не знаю, что тут вообще можно комментировать. И опять же гвоздями прибитая модель (получение данных) к вьюхе (сколько именно, какие и в каком именно порядке выводить результаты).
Извините, вопрос, наверное, глупый, но, где вы увидели глобальную переменную "прибитую гвоздями"? Прибитая к чему?
1. шаблон вывода в блоке, отвечающем за эту часть.
2. функция для вывода отдельно от html. хоть подключаемый по условию файл, например. да мало ли вариантов.
В чем затык для работы? Спрашиваю не из праздного любопытства, подобные варианты кода, не совсем в таком виде, но приходилось использовать в проектах. всегда предпочитаю знать о возможных проблемах в работе. заранее спасибо за ответ.
(Добавление)
esterio пишет:
Потом будут вопросы как поменять тайтл на странице, отослать редирект (после вывода) и т.д.
1. потому что два цикла вместо одного.
2. уходит больше памяти. всю выборку после первого цикла ты хранишь в оперативке.
Лучше сделать вывод непосредственно из базы первым циклом. Если пытаешься отрезать html-код от php, то определи шаблон вывода в нужном файле и передай его в функцию (printf, например, используй).