СЕССИИ
Код:
<?
unset($z);
session_start();
session_register("z");
printf("%s
",$z);
if(!isset($z))
{ $z="a";
}
else
{$z=$z."a";
}
printf("%s",$z);
?>
unset($z);
session_start();
session_register("z");
printf("%s
",$z);
if(!isset($z))
{ $z="a";
}
else
{$z=$z."a";
}
printf("%s",$z);
?>
Попробуй так:
Код:
<?
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;
?>
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;
?>
Цитата:
Originally posted by tray_gator
ну не пойму что тут неправильно почему не работает???
...
unset($z);
session_register("z");
...
ну не пойму что тут неправильно почему не работает???
...
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";
}
?>
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";
}
?>
Цитата:
Originally posted by HabaHaba
А какая версия PHP?
Вообще то, в последних версиях для сессий используется массив $_SESSION[] а session_register() эт архаизм.
Далее, скорее всего у вас отключены register_globals. Ну и unset() в начале делать не нужно.
В общем, попробуйте вот так:
А какая версия 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_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;
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
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...что сделать?
Код:
<?
print "aaaaaaaaaa";
session_start();
?>
print "aaaaaaaaaa";
session_start();
?>
также нельзя так (первая строка пустая):
Код:
<?
session_start();
?>
session_start();
?>
Нужно делать вот так:
Код:
<?
session_start();
print "aaaaaaaaaa";
?>
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]
Цитата:
Originally posted by mike
Ошибка возникает из-за того, что ты что-то выводишь перед session_start(), а этого делать нельзя:
также нельзя так (первая строка пустая):
Нужно делать вот так:
Все из-за того что PHP сначала нужно отправить заголовок, а именно там, в кукисах, прописывается ID сессии. После HTTP заголовка идет тело документа. Первый выводимый символ заставляет отправить заголовок и начать формирование тела документа.
После этого функции setcookie(), header() и session_start() не работают.
Посмотри функции:
[phpdoc]ob_start[/phpdoc], [phpdoc]header[/phpdoc], [phpdoc]setcookie[/phpdoc], [phpdoc]session_start[/phpdoc]
Ошибка возникает из-за того, что ты что-то выводишь перед session_start(), а этого делать нельзя:
Код:
<?
print "aaaaaaaaaa";
session_start();
?>
print "aaaaaaaaaa";
session_start();
?>
также нельзя так (первая строка пустая):
Код:
<?
session_start();
?>
session_start();
?>
Нужно делать вот так:
Код:
<?
session_start();
print "aaaaaaaaaa";
?>
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]
большое спасибо!