включить журналирование для начала. всегда если что-то неожиданное - нужно чтоб пхп машина сообщала о возможных ошибках. если нет ошибок то уже код смотреть. работаем телепатами: 1. есть ли сейшн_старт там где есть работа с сессией? 2. успешно ли сессия стартует? может пути и всё такое, конфликты доступа. 3. может кукис не пролетает потому что уже содержимое отправлено? надеюсь термины понятные употребил?
вот index.php Код (Text): <?php include "mods/connect.php"; $url = $_GET[url]; if($url == ""){$url = "main";} $mod = $_GET[mod]; if($mod == ""){$mod = "content";} $path = "mods/$mod.php"; ?> <!DOCTYPE html> <html> <head> <title> Carrer TUIT </title> <link rel="stylesheet" type="text/css" href="css/norma.css"> <link rel="stylesheet" type="text/css" href="css/style.css"> <script src="js/min/jquery-v1.10.2.min.js" type="text/javascript"></script><!--Галерея--> <!--[if lte IE 6]> <meta http-equiv="refresh" content="0; url=ie6.html"> <![endif]--> <!--[if lte IE 7]> <meta http-equiv="refresh" content="0; url=ie7.html"> <![endif]--> <!--[if lte IE 8]> <meta http-equiv="refresh" content="0; url=ie8.html"> <![endif]--> </head> <body> <div class="chief"> <div class="top_menu"><?php include "block/top_menu.php"; ?></div> <div class="galery"><?php include "block/galery.php"; ?></div> <div class="middle"> <div class="vert_menu"><?php include "block/vert_menu.php"; ?></div> <div class="main"><?php include $path; ?></div> </div> <div class="footer"><p class="pfooter">Coryright 2015 ©</p></div> </div> </body> </html> в этом файле авторизация в ней и выходишь ошибка ругается на session_start Код (Text): <?php $avt=mysql_query("SELECT * from users"); $avts=mysql_fetch_array($avt); if(isset($_POST[sent])){ $login=trim(strip_tags($_POST[login])); $pass=trim(strip_tags($_POST[password])); if($login=="" or $pass==""){ $info="1"; }else{ if($login=$avts[login] or $pass=$avts[pass]){ session_start(); $_SESSION['USERS']="1"; }}} if( !isset($_SESSION['USER'])){ ?> <div class="content"> <form method="POST" action=""> <label>Введите логин</label> <input type="text" name="login" class="vxlogin"> <label>Введите пароль</label> <input type="password" name="password" class="vxpass"><br> <a href="/reg_user.php" class="ssvx">Регистрация</a> <button class="sbpass" type="submit" name="sent">Войти</button> </form> </div> <?php } ?>
как ругается-то? ах эта падла сейшн_старт как таких свет носит? может быть какой-то текст ошибки относящийся к делу и мне не придется придется придумывать опять (ВТОРОЙ ПОСТ ПОДРЯД Я ВАНГУЮ. ЧО ЗА СРАНЬ?) что не так с программой?
вот текст ошибки Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\t.uz\www\index.php:1) in Z:\home\t.uz\www\mods\content.php on line 11 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\t.uz\www\index.php:1) in Z:\home\t.uz\www\mods\content.php on line 11 ругается на строку где вызываю сессию
$_POST[sent] - будет Notice: Use of undefined constant надо в кавычки заключать имена ключей массива Добавлено спустя 2 минуты 53 секунды: Castle, у тебя до вызова session_start() вывод происходит, может utf-8 с BOM или пробел в первой строчке index.php
В самом начале скрипта, сразу после <?php напиши А потом погугли на тему буфера вывода. Закрывать его руками не обязательно, если точка открытия всего одна. В противном случае - надо управлять им вручную. Вообще, это довольно крутая вещь и позволяет делать бочку.
и чем это поможет? бом улетает до <?php а потом ты весь вывод в буфере держишь. а потом вдруг заголовки. но бом-то улетает. и кстати не бом совсем - строка не нулевая
щас у меня получилось так я внес в сессию данные и взял из нее но на общем документе она все равно не работает почему??
а в общем документе старт не забывается? старт должен быть везде где используется сессия. понимаешь? за тебя программа не будет ее инициализировать. потому что пхп язык быстрый. если не попрошено то и не будет лишних телодвижений.
ob start просто скрывает ошибки от этого легче не становится сессия все равно не работает, а она мне нужна рабочей Добавлено спустя 2 минуты 4 секунды: я дописал or die() и он выдал вот такую ошибку Cannot send session cache limiter - headers already sent
угу, только там нет всей информации, так что выкладывай или дальше будет проводить битву экстрасенсов
if($login=$avts[login] or $pass=$avts[pass]) что это? попробуй session_start() поставить в первую строчку index.php
Ошибка та же? Добавлено спустя 15 минут 31 секунду: У тебя ошибка в настройках сервера или php. Скрипт твой с сессией работает, пятёрка на скрине это инкремент сессии. http://s017.radikal.ru/i404/1412/df/852abed514f9.png index.php Код (PHP): <?php session_start(); $_SESSION['t'] += 1;; echo $_SESSION['t'];
не у меня он тоже так если занести в сессию потом вывести он работает но если я обновлю страницу сессия не работает
ладно у меня в top_menu есть скрипт там написано если есть сессия то выведет кнопка выход а если нет то вход так у меня хоть я и создал сессию постоянно выводится кнопка вход Что скажите на это, да я согласен сессия создается но ошибка остается и если я ставлю по сессии header то он тоже не работает вообще в чем причина я понять не могу сколько раз делаю всегда останавливаюсь на этом месте