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

Ваш аккаунт

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

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

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

СЕССИИ

474
18 января 2004 года
tray_gator
101 / / 22.07.2003
ну не пойму что тут неправильно почему не работает???
Код:
<?
   unset($z);
   session_start();
   session_register("z");
 
   printf("%s
"
,$z);
   if(!isset($z))
   { $z="a";
   }
   else
   {$z=$z."a";
   }
   printf("%s",$z);
?>
4
18 января 2004 года
mike
3.7K / / 01.10.2002
Ооо :) Опыт программирования на Си, дает о себе знать :)

Попробуй так:
Код:
<?
   session_start();
   session_register("z");
   if (isset($HTTP_SESSION_VARS["z"])) $z=$HTTP_SESSION_VARS["z"];
   else unset($z);
 
   print $z;
   if(!isset($z))
   { $z="a";
   }
   else
   {$z=$z."a";
   }
   print $z;
?>
1.9K
19 января 2004 года
HabaHaba
172 / / 24.12.2003
Цитата:
Originally posted by tray_gator
ну не пойму что тут неправильно почему не работает???
...
unset($z);
session_register("z");
...


А какая версия PHP?
Вообще то, в последних версиях для сессий используется массив $_SESSION[] а session_register() эт архаизм.
Далее, скорее всего у вас отключены register_globals. Ну и unset() в начале делать не нужно.
В общем, попробуйте вот так:

Код:
<?
session_start();
if (!isset($_SESSION["test"])) {
     $_SESSION["test"]=123;
     print "Сессия зарегистрирована
"
;
} else {
     print "Сессия \"test\" содержит: ".$_SESSION["test"]."
"
;
}
if (isset($_GET["a"])) {
    if ($_GET["a"]=="d") {
           unset($_SESSION["test"]);
           print "Сессия уничтожена
"
;
           print "заново";
    }
} else {
         print "logout";
}
?>
474
07 февраля 2004 года
tray_gator
101 / / 22.07.2003
Цитата:
Originally posted by HabaHaba

А какая версия PHP?
Вообще то, в последних версиях для сессий используется массив $_SESSION[] а session_register() эт архаизм.
Далее, скорее всего у вас отключены register_globals. Ну и unset() в начале делать не нужно.
В общем, попробуйте вот так:
Код:
<?
session_start();
if (!isset($_SESSION["test"])) {
     $_SESSION["test"]=123;
     print "Сессия зарегистрирована
"
;
} else {
     print "Сессия \"test\" содержит: ".$_SESSION["test"]."
"
;
}
if (isset($_GET["a"])) {
    if ($_GET["a"]=="d") {
           unset($_SESSION["test"]);
           print "Сессия уничтожена
"
;
           print "заново";
    }
} else {
         print "logout";
}
?>



а если у меня скажем в сессии массив...то как обозначается:
$_SESSION["test[n]"]=123;

474
13 февраля 2004 года
tray_gator
101 / / 22.07.2003
вообщем еще запутанней вопрос сейчас задам ... все работает ... сессию создает но пишет следующее ...

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/fotoshop-www/docs/add.php:2) in /home/fotoshop-www/docs/default.php on line 4

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/fotoshop-www/docs/add.php:2) in /home/fotoshop-www/docs/default.php on line 4

вот что в line 4: session_start(); ...и самое дурацкое..что сессия создается...в ней присваивается все...все работает...но выдаются эти сообщения...как от них избавиться?
я на хостинге попросил чтобы мне дали сам php.ini вот весь его код...
 
Код:
; session.save_path = /home/sess
extension_dir = /usr/opt/php4/extensions
register_globals = On

error_reporting = E_ALL & ~E_NOTICE
extension = iconv.so
extension = imap.so
extension = mysql.so
extension = curl.so
extension = gettext.so

я там только одну строчку вставил error_reporting = E_ALL & ~E_NOTICE и все равно выдаются warnings...что сделать?
4
13 февраля 2004 года
mike
3.7K / / 01.10.2002
Ошибка возникает из-за того, что ты что-то выводишь перед session_start(), а этого делать нельзя:

 
Код:
<?
print "aaaaaaaaaa";
session_start();
?>


также нельзя так (первая строка пустая):

 
Код:
<?
session_start();
?>


Нужно делать вот так:

 
Код:
<?
session_start();
print "aaaaaaaaaa";
?>


Все из-за того что PHP сначала нужно отправить заголовок, а именно там, в кукисах, прописывается ID сессии. После HTTP заголовка идет тело документа. Первый выводимый символ заставляет отправить заголовок и начать формирование тела документа.

После этого функции setcookie(), header() и session_start() не работают.

Посмотри функции:

[phpdoc]ob_start[/phpdoc], [phpdoc]header[/phpdoc], [phpdoc]setcookie[/phpdoc], [phpdoc]session_start[/phpdoc]
474
15 февраля 2004 года
tray_gator
101 / / 22.07.2003
Цитата:
Originally posted by mike
Ошибка возникает из-за того, что ты что-то выводишь перед session_start(), а этого делать нельзя:

 
Код:
<?
print "aaaaaaaaaa";
session_start();
?>


также нельзя так (первая строка пустая):

 
Код:
<?
session_start();
?>


Нужно делать вот так:

 
Код:
<?
session_start();
print "aaaaaaaaaa";
?>


Все из-за того что PHP сначала нужно отправить заголовок, а именно там, в кукисах, прописывается ID сессии. После HTTP заголовка идет тело документа. Первый выводимый символ заставляет отправить заголовок и начать формирование тела документа.

После этого функции setcookie(), header() и session_start() не работают.

Посмотри функции:

[phpdoc]ob_start[/phpdoc], [phpdoc]header[/phpdoc], [phpdoc]setcookie[/phpdoc], [phpdoc]session_start[/phpdoc]




большое спасибо!

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