Добрый день. Ситуация следующая. При отключении cookies в браузере ниже приведенный скрипт должен мотать счетчик на +1 вперед при каждом нажатии на ссылку (то есть sid сессии передается). Скрипт взят из учебника по php, но по какой-то загадочной причине этого не происходит. Помогите разобраться пожайлуста ! PHP: ## Простой пример использования сессий без Cookies. session_name("test"); session_start(); $_SESSION['count'] = @$_SESSION['count'] + 1; ?> <h2>Счетчик</h2> В текущей сессии работы с браузером Вы открыли эту страницу <?php echo $_SESSION['count']?> раз(а). <br> Закройте браузер, чтобы обнулить этот счетчик.<br> <a href="<?php echo $_SERVER['SCRIPT_NAME']?>?<?php echo SID?>"> Нажмите сюда для обновления страницы!</a>
4 строчки. Все прекрасно заработает) PHP: <?php session_start(); session_name("test"); $_SESSION['count']+= 1; echo $_SESSION['count']; ?> P.S При первом обращении будет notice ругаться просто добавить @ (но не рекомендую). По хорошему если пустая присвоить 0.
Твой вариант тоже работает. Вот только где в самом начале <?php А вообще я чтото тему не прочитал) Естественно работать не будет ID сессии в кукисах хранится. Либо пиши в файл либо в бд. http://www.cracklab.ru/pro/php/showwork.php?id=9 В файл пиши IP и кол-во посещений. Проверяй и обновляй.
неверно. ID сессии может передаваться в запросе. У ТС она передается в гет-строке, вот здесь <a href="<?php echo $_SERVER['SCRIPT_NAME']?>?<?php echo SID?>"> Почему не работает я не знаю. Подозреваю что не включена use_trans_sid в php.ini, но не уверен а проверять лень
Я подозреваю что SID это константа которой я у тебя не вижу. Чтобы вернуть ид сессии: PHP: session_start(); define("SID",session_id()); echo SID; Вот теперь передастся ID сессии.
Вопрос остался открытым, потому как скрипт взят из книги Котерова, Костерова (вроде одна из лучших) и там говорится, что должно все работать. В чем-же дело ? млин..
SvenSoft Возможно у тебя сессия не стартует из-за того, что до session_start() есть вывод в браузер. Ради интереса - скачай Notepad++ и сохрани файл в кодировке UTF-8 без BOM И проверь чтобы до <?php не было никакого вывода, в том числе пробелов.