За последние 24 часа нас посетили 17300 программистов и 1651 робот. Сейчас ищут 1255 программистов ...

Сессии и куки

Тема в разделе "PHP для новичков", создана пользователем SvenSoft, 22 июн 2011.

  1. SvenSoft

    SvenSoft Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    5
    Симпатии:
    0
    Добрый день. Ситуация следующая. При отключении cookies в браузере ниже приведенный скрипт должен мотать счетчик на +1 вперед при каждом нажатии на ссылку (то есть sid сессии передается). Скрипт взят из учебника по php, но по какой-то загадочной причине этого не происходит. Помогите разобраться пожайлуста !

    PHP:
    1. ## Простой пример использования сессий без Cookies.
    2. session_name("test");
    3. session_start();
    4. $_SESSION['count'] = @$_SESSION['count'] + 1;
    5. ?>
    6. <h2>Счетчик</h2>
    7. В текущей сессии работы с браузером Вы открыли эту страницу
    8. <?php echo $_SESSION['count']?> раз(а). <br>
    9. Закройте браузер, чтобы обнулить этот счетчик.<br>
    10. <a href="<?php echo $_SERVER['SCRIPT_NAME']?>?<?php echo SID?>">
    11. Нажмите сюда для обновления страницы!</a>
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    4 строчки. Все прекрасно заработает)

    PHP:
    1. <?php
    2. session_name("test");
    3. $_SESSION['count']+= 1;
    4. echo $_SESSION['count'];
    5. ?>
    P.S При первом обращении будет notice ругаться просто добавить @ (но не рекомендую). По хорошему если пустая присвоить 0.
     
  3. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Вроде ТС сказал, что работать должно
    А твои 4 строчки от приведенных ТС ничем не отличаются
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Твой вариант тоже работает. Вот только где в самом начале <?php

    А вообще я чтото тему не прочитал) Естественно работать не будет ID сессии в кукисах хранится. Либо пиши в файл либо в бд.

    http://www.cracklab.ru/pro/php/showwork.php?id=9

    В файл пиши IP и кол-во посещений. Проверяй и обновляй.
     
  5. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    неверно. ID сессии может передаваться в запросе. У ТС она передается в гет-строке, вот здесь <a href="<?php echo $_SERVER['SCRIPT_NAME']?>?<?php echo SID?>">

    Почему не работает я не знаю. Подозреваю что не включена use_trans_sid в php.ini, но не уверен а проверять лень
     
  6. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Я подозреваю что SID это константа которой я у тебя не вижу.

    Чтобы вернуть ид сессии:

    PHP:
    1. define("SID",session_id());
    2. echo SID;
    Вот теперь передастся ID сессии.
     
  7. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    Смотреть:
    session.use_only_cookies
    session.use_trans_sid
    url_rewriter.tags
     
  8. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
  9. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Вай) Спасибо. Просто не сталкивался с такой проблемой, но для меня задача очевидной показалась)
     
  10. SvenSoft

    SvenSoft Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    5
    Симпатии:
    0
    Вопрос остался открытым, потому как скрипт взят из книги Котерова, Костерова (вроде одна из лучших) и там говорится, что должно все работать. В чем-же дело ? млин..
     
  11. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Включи кукисы и не парься. Или другой способ хранения данных найди)
     
  12. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    в какой кодировке файл? Каким редактором пользуешься?
     
  13. SvenSoft

    SvenSoft Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    5
    Симпатии:
    0
    редактор dreamweaver, кодировка windows-1251.
     
  14. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    SvenSoft
    Возможно у тебя сессия не стартует из-за того, что до session_start() есть вывод в браузер.
    Ради интереса - скачай Notepad++ и сохрани файл в кодировке UTF-8 без BOM
    И проверь чтобы до <?php не было никакого вывода, в том числе пробелов.
     
  15. SvenSoft

    SvenSoft Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    5
    Симпатии:
    0
    Все сделал так, все тоже самое, в двух браузерах проверил (опера и експловер)