Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Механизм сессий

7.3K
18 августа 2005 года
tot
25 / / 24.03.2005
Не могу разобраться как работает механизм сессий.
Вот пример
 
Код:
<?php
session_start ();
session_register (a);
$a = 6;
echo "<a href = 1.php>next </a>"
?>

И хочу увидеть переменную $a на странице 1.php. Что нужно написать на этой 1.php чтобы была видна переменная $a
365
18 августа 2005 года
MasterSID
230 / / 23.02.2003
session_start ();
session_register ('a');
echo $_SESSION['a'];
7.3K
18 августа 2005 года
tot
25 / / 24.03.2005
Цитата:
Originally posted by MasterSID
session_start ();
session_register ('a');
echo $_SESSION['a'];


А если register_global = on то можно обращаться без $_SESSION['a'] а просто $a?

365
18 августа 2005 года
MasterSID
230 / / 23.02.2003
Да можно, но лучше ее офф. Безопаснее для скрипта
7.3K
18 августа 2005 года
tot
25 / / 24.03.2005
Цитата:
Originally posted by MasterSID
Да можно, но лучше ее офф. Безопаснее для скрипта


Вот как я сделал:
2.php

 
Код:
<?php      
session_start ();  
session_register (a);  
$a = $a + 1;   
echo "$a";     
?>

1.php
 
Код:
<?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.8K
18 августа 2005 года
BIKTOP
91 / / 06.04.2005
Цитата:
Originally posted by tot

На странице 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>

8.8K
18 августа 2005 года
viktor_root
58 / / 10.08.2005
Цитата:
Originally posted by tot
Не могу разобраться как работает механизм сессий.
Вот пример
 
Код:
<?php
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
?>

271
18 августа 2005 года
MrXaK
721 / / 31.12.2002
а обязательно ли делать session_register()? у меня на 3х платформах всё без этого работает... просто session_start(), $_SESSION['var'] = value;
8.8K
18 августа 2005 года
viktor_root
58 / / 10.08.2005
Цитата:
Originally posted by Mr.Hacker
а обязательно ли делать session_register()? у меня на 3х платформах всё без этого работает... просто session_start(), $_SESSION['var'] = value;


----------------------------------
Маладець :)

15
19 августа 2005 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by Mr.Hacker
а обязательно ли делать session_register()? у меня на 3х платформах всё без этого работает... просто session_start(), $_SESSION['var'] = value;


После (не помню какой-то мохнатой версии) регистрировать не надо.

 
Код:
session_start()//обязательно на каждой страничке
$_SESSION['a'] = "что-то"
365
19 августа 2005 года
MasterSID
230 / / 23.02.2003
По крайней мере в книге, которую я читал "Профессиональное PHP программирование" написано что это равносильные методы, что функция session_register() делает ни что иное, как помещает переменную в этот массив. Мне кажется, что всеже лучше использовать методы предложенные разработчиками PHP (т.е. юзать эту функцию), т.к. мало ли, что в будущем может в языке измениться. Если они придумали какую-то штуку значит не зря, и если рекомендуют ее использовать - тоже видимо не спроста. Какой смысл язык усложнять безобасновательно?

А то как с кодированием метасимволов html - не зря же ее придумали. Многие думают - а, фигня - ни на что не влияет. В браузере ошибок нет - все как показывалось без нее, а так и показывается. И пишут себе беззаботно скрипты, а потом бац, XSSом их хакают :)

НУ и чисто практическая польза от использования этой функции - в начале скрипта видно какие переменные используются в сессии.
15
19 августа 2005 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by MasterSID
По крайней мере в книге, которую я читал "Профессиональное PHP программирование" написано что это равносильные методы, что функция session_register() делает ни что иное, как помещает переменную в этот массив. Мне кажется, что всеже лучше использовать методы предложенные разработчиками PHP (т.е. юзать эту функцию), т.к. мало ли, что в будущем может в языке измениться. Если они придумали какую-то штуку значит не зря, и если рекомендуют ее использовать - тоже видимо не спроста. Какой смысл язык усложнять безобасновательно?

А то как с кодированием метасимволов html - не зря же ее придумали. Многие думают - а, фигня - ни на что не влияет. В браузере ошибок нет - все как показывалось без нее, а так и показывается. И пишут себе беззаботно скрипты, а потом бац, XSSом их хакают :)

НУ и чисто практическая польза от использования этой функции - в начале скрипта видно какие переменные используются в сессии.


Книга очень хорошая, но там есть один нюанс - она написана на основе 4.0.2 и отредактирована под 4.2.0 так что там очень многое уже устарело (сам на грабли наступал).

7.3K
19 августа 2005 года
tot
25 / / 24.03.2005
Цитата:
Originally posted by BIKTOP
А ты, случайно, никакого html-я перед этим не выводил?
Ну типа
<html>
...
<?
твой код
?>
...
</html>



Выводил, а что не надо было?

15
19 августа 2005 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by tot
Выводил, а что не надо было?


Нет! Не echo (print()), не header(), не какого html кода выводить нельзя! Вот почитай.

7.3K
19 августа 2005 года
tot
25 / / 24.03.2005
Цитата:
Originally posted by shaelf
Нет! Не echo (print()), не header(), не какого html кода выводить нельзя! Вот почитай.


Так надо было сразу линк кидать. А вообще спасибо.

15
19 августа 2005 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by tot
Так надо было сразу линк кидать. А вообще спасибо.


Пожалуйста. А yandex (rambler, yahoo и т.д.) уже отменили?

7.3K
19 августа 2005 года
tot
25 / / 24.03.2005
Цитата:
Originally posted by shaelf
Пожалуйста. А yandex (rambler, yahoo и т.д.) уже отменили?


Да вроде бы пока нет просто это я такой ломер. А скажика лучше как самому принудительно закрыть сессию или удалить переменные из сесии.

15
19 августа 2005 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by tot
Да вроде бы пока нет просто это я такой ломер. А скажика лучше как самому принудительно закрыть сессию или удалить переменные из сесии.


http://codenet.ru/webmast/php/PHP4-Manual/f/session-destroy.php
Если нужны будут функции, то попробуй сначала тут посмотри

271
19 августа 2005 года
MrXaK
721 / / 31.12.2002
Цитата:
Originally posted by tot
Да вроде бы пока нет просто это я такой ломер. А скажика лучше как самому принудительно закрыть сессию или удалить переменные из сесии.


session_unset();
session_destroy();

7.3K
19 августа 2005 года
tot
25 / / 24.03.2005
Цитата:
Originally posted by shaelf
Нет! Не echo (print()), не header(), не какого html кода выводить нельзя! Вот почитай.


Так все убрал и ничего таже самая ошибка

7.3K
19 августа 2005 года
tot
25 / / 24.03.2005
Цитата:
Originally posted by tot
Так все убрал и ничего таже самая ошибка


Все понял сам.
Просто было не

 
Код:
<?php
?>

а
 
Код:
<?php
        ?>

Тобиш лишние пробелы
15
19 августа 2005 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by tot
Все понял сам.
Просто было не
 
Код:
<?php
?>

а
 
Код:
<?php
        ?>

Тобиш лишние пробелы


Молодец!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог