А ты сделай отладку http://phpfaq.ru/debug Что сессия содержит там где "если есть сессия то выведет кнопка выход" Добавлено спустя 2 минуты 7 секунд: И что это за вакханалия? Зачем в if присвоение? https://php.net/manual/ru/language.operators.assignment.php Код (PHP): if($login=$avts[login] or $pass=$avts[pass]){ session_start() or die(); $_SESSION['USER']="$avts[login]"; echo $_SESSION['USER']; }}}
нет там просто if у меня стоит и если сессия существует он должен вывести кнопку выход вместо кнопки вход ну смотрите если я сделаю откладку все ошибки исчезнут но header у меня все равно не работает это значит где то выводится заголовок??
Скачал и глянул код. Я, правда, не понял решил топикстартер проблему с сессией или ещё нет. В общем сессия стартует в файле content.php. Этот файл подключается в середине index.php ("<?php include $path; ?>"). К этому моменту в поток уже отдано куча Html-кода. Решается проблема, как уже было сказано, просто: надо "session_start() or die();" перенести в начало файла index.php. Код (Text): <?php include "mods/connect.php"; ... $path = "mods/$mod.php"; ?> <!DOCTYPE html> <html> <head> ... <div class="main"><?php include $path; ?></div> ... З.Ы, В "if" нужно писать "==", а не "=".
спасибо я все исправил и сессия работает но все же если я потом ставлю header он ругается почему ? Добавлено спустя 5 минут 26 секунд: и еще один вопрос у меня сессия работает если 2 раза обновить страницу так и должно быть????
Что есть "ставлю header"? И что есть "ругается"? Команды "header(...)" тоже должны выполняться до того, как браузеру что-то будет отдано. Вероятно вывод того, что ставится в сессию, находится выше того места, где, собственно, что-то в сессию попадает.
Пусть там что угодно улетает. Почитай, как работает буфер вывода. Он не тупо собирает все как есть. Он перехватывает все выбросы заголовков и ставит их перед выводом контента. То есть, с буфером вывода тебе вообще плевать, когда выкидывать заголовки, и есть там бом или нет. Заголовки априори будут идти первыми. Это его прямое назначение - снять с разработчика заголовочный геморрой, из-за которого некоторые готовы архитектуру уродовать. 1) Сессия не работает? А ты проверял? 2) Буфер вывода "просто скрывает ошибки"? Сначала почитай, что это такое, чтоли, камрад, для чего служит, и как работает. Ошибки скрывает собачка @. Буфер вывода сортирует вывод, расставляя заголовки на свое место, а контент на свое.