За последние 24 часа нас посетили 17733 программиста и 1676 роботов. Сейчас ищут 858 программистов ...

Session

Тема в разделе "PHP для новичков", создана пользователем Castle, 25 дек 2014.

  1. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    Помогите пожалуйста как можно проверить почему не создается сессия???
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    включить журналирование для начала. всегда если что-то неожиданное - нужно чтоб пхп машина сообщала о возможных ошибках. если нет ошибок то уже код смотреть. работаем телепатами:
    1. есть ли сейшн_старт там где есть работа с сессией?
    2. успешно ли сессия стартует? может пути и всё такое, конфликты доступа.
    3. может кукис не пролетает потому что уже содержимое отправлено?
    надеюсь термины понятные употребил?
     
  3. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    вот index.php
    Код (Text):
    1. <?php
    2. include "mods/connect.php";
    3. $url = $_GET[url];
    4. if($url == ""){$url = "main";}
    5. $mod = $_GET[mod];
    6. if($mod == ""){$mod = "content";}
    7. $path = "mods/$mod.php";
    8. ?>  
    9. <!DOCTYPE html>
    10. <html>
    11. <head>
    12.     <title> Carrer TUIT </title>
    13.     <link rel="stylesheet" type="text/css" href="css/norma.css">
    14.     <link rel="stylesheet" type="text/css" href="css/style.css">
    15.     <script src="js/min/jquery-v1.10.2.min.js" type="text/javascript"></script><!--Галерея-->
    16. <!--[if lte IE 6]>
    17.       <meta http-equiv="refresh" content="0; url=ie6.html">
    18. <![endif]-->
    19. <!--[if lte IE 7]>
    20.       <meta http-equiv="refresh" content="0; url=ie7.html">
    21. <![endif]-->
    22. <!--[if lte IE 8]>
    23.       <meta http-equiv="refresh" content="0; url=ie8.html">
    24. <![endif]-->
    25. </head>
    26. <body>
    27. <div class="chief">
    28.  
    29.  
    30.    
    31.     <div class="top_menu"><?php include "block/top_menu.php"; ?></div>
    32.     <div class="galery"><?php include "block/galery.php"; ?></div>
    33.         <div class="middle">
    34.     <div class="vert_menu"><?php include "block/vert_menu.php"; ?></div>
    35.     <div class="main"><?php include $path; ?></div>
    36.         </div>
    37.     <div class="footer"><p class="pfooter">Coryright 2015 &copy;</p></div>
    38.  
    39.  
    40.  
    41.  
    42.  
    43. </div>
    44. </body>
    45. </html>
    в этом файле авторизация в ней и выходишь ошибка ругается на session_start
    Код (Text):
    1. <?php
    2. $avt=mysql_query("SELECT * from users");
    3. $avts=mysql_fetch_array($avt);
    4.  
    5. if(isset($_POST[sent])){
    6. $login=trim(strip_tags($_POST[login]));
    7. $pass=trim(strip_tags($_POST[password]));  
    8. if($login=="" or $pass==""){ $info="1";
    9. }else{
    10. if($login=$avts[login] or $pass=$avts[pass]){
    11.     session_start();
    12.     $_SESSION['USERS']="1";
    13.    
    14.     }}}
    15. if(  !isset($_SESSION['USER'])){
    16. ?>
    17.  
    18.    
    19. <div class="content">
    20.     <form method="POST" action="">
    21.     <label>Введите логин</label>
    22.     <input type="text" name="login" class="vxlogin">
    23.     <label>Введите пароль</label>
    24.     <input type="password" name="password" class="vxpass"><br>
    25.     <a href="/reg_user.php" class="ssvx">Регистрация</a>
    26. <button class="sbpass" type="submit" name="sent">Войти</button>
    27.     </form>
    28. </div>
    29. <?php  }
    30.  
    31.  
    32.  
    33. ?>
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    как ругается-то? ах эта падла сейшн_старт как таких свет носит? может быть какой-то текст ошибки относящийся к делу и мне не придется придется придумывать опять (ВТОРОЙ ПОСТ ПОДРЯД Я ВАНГУЮ. ЧО ЗА СРАНЬ?) что не так с программой?
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Сурикатовая телепатия - расширение, отвечающее за сессии, отсутствует как таковое.
     
  6. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    вот текст ошибки

    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

    ругается на строку где вызываю сессию
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    $_POST[sent] - будет Notice: Use of undefined constant
    надо в кавычки заключать имена ключей массива

    Добавлено спустя 2 минуты 53 секунды:
    Castle, у тебя до вызова session_start() вывод происходит, может utf-8 с BOM или пробел в первой строчке index.php
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    В самом начале скрипта, сразу после <?php напиши
    А потом погугли на тему буфера вывода. Закрывать его руками не обязательно, если точка открытия всего одна. В противном случае - надо управлять им вручную. Вообще, это довольно крутая вещь и позволяет делать бочку.
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и чем это поможет? бом улетает до <?php а потом ты весь вывод в буфере держишь. а потом вдруг заголовки. но бом-то улетает. и кстати не бом совсем - строка не нулевая
     
  10. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    щас у меня получилось так я внес в сессию данные и взял из нее но на общем документе она все равно не работает почему??
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ошибка пропала?
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а в общем документе старт не забывается? старт должен быть везде где используется сессия. понимаешь? за тебя программа не будет ее инициализировать. потому что пхп язык быстрый. если не попрошено то и не будет лишних телодвижений.
     
  13. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    ob start просто скрывает ошибки от этого легче не становится сессия все равно не работает, а она мне нужна рабочей

    Добавлено спустя 2 минуты 4 секунды:
    я дописал or die() и он выдал вот такую ошибку
    Cannot send session cache limiter - headers already sent
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Запакуй свои файлы и выложи для скачивания, посмотрим что там у тебя
     
  15. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    я наверху выложил два файла
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    угу, только там нет всей информации, так что выкладывай или дальше будет проводить битву экстрасенсов
     
  17. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    у как мне это сделать откуда ты скачаешь??
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  19. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
  20. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    if($login=$avts[login] or $pass=$avts[pass]) что это?
    попробуй session_start() поставить в первую строчку index.php
     
  21. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    к сожалею ничего не изменилось(
     
  22. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ошибка та же?

    Добавлено спустя 15 минут 31 секунду:
    У тебя ошибка в настройках сервера или php.
    Скрипт твой с сессией работает, пятёрка на скрине это инкремент сессии.
    http://s017.radikal.ru/i404/1412/df/852abed514f9.png

    index.php
    Код (PHP):
    1. <?php 
    2. $_SESSION['t'] += 1;;
    3. echo $_SESSION['t']; 
     
  23. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    не у меня он тоже так если занести в сессию потом вывести он работает но если я обновлю страницу сессия не работает
     
  24. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Так я обновлял страницу 5 раз, скрипт получал данные из сессии и прибавлял единицу и так пять раз.
     
  25. Castle

    Castle Новичок

    С нами с:
    17 дек 2014
    Сообщения:
    32
    Симпатии:
    0
    ладно у меня в top_menu есть скрипт там написано если есть сессия то выведет кнопка выход а если нет то вход так у меня хоть я и создал сессию постоянно выводится кнопка вход
    Что скажите на это, да я согласен сессия создается но ошибка остается и если я ставлю по сессии header то он тоже не работает вообще в чем причина я понять не могу сколько раз делаю всегда останавливаюсь на этом месте