![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Flat |
|
||||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.12.2003 Репутация: нет Всего: нет |
разбираюсь с сессими... вроде все заработало но вот ошибка достала )
как я понимаю ошибка что второй раз делаю старт сессий? ... вроде проверку вставил... правда все остальное что к сессиям привязано вроде робит... елсли эта ошибка не критична как ее убрать? вот index.php
|
||||
|
|||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Сессия отправляет НТТР заголовки.
Структура НТТР ответа такова, что в нем сначала идут заголовки, а потом - текст ответа. Если уже начался текст, то заголовок, разумеется, выдать уже нельзя. О чем тебе и пишет: headers already sent. Вообще странно, что сессии работает. Разве что сессия изначально начинается в каком-то другом месте, где преждевременный вывод не мешает установить куку. Вообще, этот фрагмент кода нарушает два правила 1. вся работа с заголовками должна веститсь до вывода в браузер. 2. в индексном файле не должно быть html кода. |
|||
|
||||
Flat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.12.2003 Репутация: нет Всего: нет |
да начинаеться вдругом месте ... которое инклюдиться в индекс.... авторизация ... хм.. а как средствами пхп создать таблицу? через echo? или лучше инклюдить еще 1 файл с разметкой таблицы?
мысль в том что весь контент будет выводиться через index.php.... да... щас сам задумался об индексации .... придеться переделывать Это сообщение отредактировал(а) Flat - 7.8.2009, 20:25 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Да, надо инклюдить файл с разметкой страницы.
Индексация здесь не при чем. И дело не в том, как выводить хтмл - через эхо или без эха. Разницы никакой. А индексный файл должен быть диспетчером, заниматься только определением, какую информацию выводить, какие файлы подключать. Переменная $do, небось, передается через адрес? |
|||
|
||||
Flat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.12.2003 Репутация: нет Всего: нет |
вощем вывод сдела эхами и все заробило спасибо
угу через $do через адрес... а что .. что то с этим не так? |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Странно. Как могла переделка на вывод эхами решить проблему. И зачем было вместо нормального хтмл делать непонятно что.
Ну да ладно. Что с $do не так? Да дыра это. Хрестоматийная. |
|||
|
||||
Flat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.12.2003 Репутация: нет Всего: нет |
простите за тупизну... я еще только учусь...
еще несколько вопросов 1 Что за дыра? обьясните пожалуста для понимания? если $do передавать через базу дыра исчезнет? 2. как ты и говорил сделал сесии до вывода html Щас Index.php выглядит так
Это сообщение отредактировал(а) Flat - 8.8.2009, 12:48 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
дыра в $do в том, что ты открыто передаёшь имя подключаемого модуля, а затем инклудишь его.
пример: допустим, у тебя где-то есть возможность загружать файлы на сервер и злодей загружает не обычную картинку, а свой файл с кодом. затем он подменяет в адресе &do=имя_своего_файла и подключает его в код. в итоге он может что-угодно сделать. либо ещё проще, он просто подставляет имя какого-нибудь конфига или другого, обычно закрытого файла, и в итоге может получить некую информацию, которую в теории могут видеть только администраторы передавать надо id модуля, в идеале - число: &do=5 потом в БД находить по id адрес этого модуля и инклудить, применяя все нужные проверки на доступ пользователя к этому модулю |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Нет, не исчезнет. Передаваемый параметр надо проверять в любом случае, какой бы механизм не использовался. И вообще, передать что-либо через базу данных невозможно. В браузере у пользователя базы данных нету. И она из браузера ничего не передаст. Это же касается и п.2 Ну и зачем было переделывать все на echo? Неужели серый HTML без кавычек воспринимается и работает лучше? Речь шла совсем о другом. |
|||
|
||||
Flat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.12.2003 Репутация: нет Всего: нет |
Добавлено @ 12:57
1 дошло по первому вопросу... будет отдельная база страниц а передаваться тока ID на эту страницу... 2 не лучше читаеться конечно... но так проще разорвать его, чтобы например мета-теги вставить ... но то что ты преложил тоже дошло... 3 щас думаю как индентификатор сессии передать не через строку и не через кукис ) Это сообщение отредактировал(а) Flat - 8.8.2009, 12:58 |
|||
|
||||
Ипатьев |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Ну, если страницы представляют собой только текст, то их изначально следовало хранить в базе. Но если это php код, то ему-то что в базе делать? Это шутка? Писать кучу эхо с частоколом слешей проще, чем написать ?><? ? я не совсем в этом уверен
Думать, вообще, всегда полезно, но в данном случае результат будет нулевым. Никак. |
||||
|
|||||
Flat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.12.2003 Репутация: нет Всего: нет |
1. база будет не из самих страниц... а из ссылок на страницы... те страницы которые будут содержать только тексты будут храница в также базе 2 вечером переделаю 3. .... пока мыслей нет... 4. спасибо за помощь и тебе и bars80080 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
А какой смысл в таком извращении? значит, надо использовать то, что есть. учитывая, что механизм сессий сам использует и тот и другой способ, беспокоиться тут и вовсе не о чем. Это сообщение отредактировал(а) Ипатьев - 8.8.2009, 15:36 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |