Механизм сессий
Вот пример
session_start ();
session_register (a);
$a = 6;
echo "<a href = 1.php>next </a>"
?>
И хочу увидеть переменную $a на странице 1.php. Что нужно написать на этой 1.php чтобы была видна переменная $a
session_register ('a');
echo $_SESSION['a'];
session_start ();
session_register ('a');
echo $_SESSION['a'];
А если register_global = on то можно обращаться без $_SESSION['a'] а просто $a?
Да можно, но лучше ее офф. Безопаснее для скрипта
Вот как я сделал:
2.php
session_start ();
session_register (a);
$a = $a + 1;
echo "$a";
?>
1.php
session_start ();
session_register (a);
echo "$a";
?>
На странице 1.php значение $a выдается, но вместе с ней(с переменной) ошибка:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at d:\htdocs\tmp\1.php:8) in d:\htdocs\tmp\1.php on line 9
На странице 1.php значение $a выдается, но вместе с ней(с переменной) ошибка:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at d:\htdocs\tmp\1.php:8) in d:\htdocs\tmp\1.php on line 9
А ты, случайно, никакого html-я перед этим не выводил?
Ну типа
<html>
...
<?
твой код
?>
...
</html>
Не могу разобраться как работает механизм сессий.
Вот пример
session_start ();
session_register (a);
$a = 6;
echo "<a href = 1.php>next </a>"
?>
И хочу увидеть переменную $a на странице 1.php. Что нужно написать на этой 1.php чтобы была видна переменная $a
------------------------------------------
//a.php
<?php
session_start();//обязательно ДО ВЫВОДА ЧЕГО-ЛИБО
//БРОУЗЕРУ
session_register('var');// без коментов
$_SESSION['var'] = 'нек знач';// это обязательно
//необходимо для того чтобы var
// зарегистрировалась
// session_register() не // достаточно - файл сессии
// будет пустой
//все перем после рег заносим
// в этот массив
echo "next";
?>
//b.php
<?php
session_start();// обязательно для доступа к сесс
echo $_SESSION['var'];//работаем тока с $_SESSION
?>
а обязательно ли делать session_register()? у меня на 3х платформах всё без этого работает... просто session_start(), $_SESSION['var'] = value;
----------------------------------
Маладець :)
а обязательно ли делать session_register()? у меня на 3х платформах всё без этого работает... просто session_start(), $_SESSION['var'] = value;
После (не помню какой-то мохнатой версии) регистрировать не надо.
$_SESSION['a'] = "что-то"
А то как с кодированием метасимволов html - не зря же ее придумали. Многие думают - а, фигня - ни на что не влияет. В браузере ошибок нет - все как показывалось без нее, а так и показывается. И пишут себе беззаботно скрипты, а потом бац, XSSом их хакают :)
НУ и чисто практическая польза от использования этой функции - в начале скрипта видно какие переменные используются в сессии.
По крайней мере в книге, которую я читал "Профессиональное PHP программирование" написано что это равносильные методы, что функция session_register() делает ни что иное, как помещает переменную в этот массив. Мне кажется, что всеже лучше использовать методы предложенные разработчиками PHP (т.е. юзать эту функцию), т.к. мало ли, что в будущем может в языке измениться. Если они придумали какую-то штуку значит не зря, и если рекомендуют ее использовать - тоже видимо не спроста. Какой смысл язык усложнять безобасновательно?
А то как с кодированием метасимволов html - не зря же ее придумали. Многие думают - а, фигня - ни на что не влияет. В браузере ошибок нет - все как показывалось без нее, а так и показывается. И пишут себе беззаботно скрипты, а потом бац, XSSом их хакают :)
НУ и чисто практическая польза от использования этой функции - в начале скрипта видно какие переменные используются в сессии.
Книга очень хорошая, но там есть один нюанс - она написана на основе 4.0.2 и отредактирована под 4.2.0 так что там очень многое уже устарело (сам на грабли наступал).
А ты, случайно, никакого html-я перед этим не выводил?
Ну типа
<html>
...
<?
твой код
?>
...
</html>
Выводил, а что не надо было?
Выводил, а что не надо было?
Нет! Не echo (print()), не header(), не какого html кода выводить нельзя! Вот почитай.
Нет! Не echo (print()), не header(), не какого html кода выводить нельзя! Вот почитай.
Так надо было сразу линк кидать. А вообще спасибо.
Так надо было сразу линк кидать. А вообще спасибо.
Пожалуйста. А yandex (rambler, yahoo и т.д.) уже отменили?
Пожалуйста. А yandex (rambler, yahoo и т.д.) уже отменили?
Да вроде бы пока нет просто это я такой ломер. А скажика лучше как самому принудительно закрыть сессию или удалить переменные из сесии.
Да вроде бы пока нет просто это я такой ломер. А скажика лучше как самому принудительно закрыть сессию или удалить переменные из сесии.
http://codenet.ru/webmast/php/PHP4-Manual/f/session-destroy.php
Если нужны будут функции, то попробуй сначала тут посмотри
Да вроде бы пока нет просто это я такой ломер. А скажика лучше как самому принудительно закрыть сессию или удалить переменные из сесии.
session_unset();
session_destroy();
Нет! Не echo (print()), не header(), не какого html кода выводить нельзя! Вот почитай.
Так все убрал и ничего таже самая ошибка
Так все убрал и ничего таже самая ошибка
Все понял сам.
Просто было не
?>
а
?>
Тобиш лишние пробелы
Все понял сам.
Просто было не
?>
а
?>
Тобиш лишние пробелы
Молодец!