[Session]
session.save_handler =
files session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 1000
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter =
nocache session.cache_expire =
180 session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
Sessions
есть некоторый скриптец:
Код:
<?php
session_start();
session_register("a");
if ($HTTP_POST_VARS['act'] == "aut")
{
$HTTP_SESSION_VARS['a'] = "A";
}
echo("a: ".$HTTP_SESSION_VARS['a']);
session_destroy();
$html = "<form action=\"".$_SESSION[PHP_SELF]."\" method=\"POST\">";
$html .= "<input type=\"hidden\" name=\"act\" value=\"aut\">";
$html .= "<input type=\"Submit\">";
$html .= "</form>";
echo($html);
?>
session_start();
session_register("a");
if ($HTTP_POST_VARS['act'] == "aut")
{
$HTTP_SESSION_VARS['a'] = "A";
}
echo("a: ".$HTTP_SESSION_VARS['a']);
session_destroy();
$html = "<form action=\"".$_SESSION[PHP_SELF]."\" method=\"POST\">";
$html .= "<input type=\"hidden\" name=\"act\" value=\"aut\">";
$html .= "<input type=\"Submit\">";
$html .= "</form>";
echo($html);
?>
Запрашиваю этот скрипт браузером - выводится "а: ". Жму Submit - в браузере выводится "а: А". Закрываю окно браузера, открываю новое и опять на этот скрипт - выводится "а: ", а хочется, чтобы выводилось "а: А".
вот часть php.ini:
Код:
Помогайте.
Цитата:
Originally posted by GHopper
Здравствуйте!
есть некоторый скриптец:
Запрашиваю этот скрипт браузером - выводится "а: ". Жму Submit - в браузере выводится "а: А". Закрываю окно браузера, открываю новое и опять на этот скрипт - выводится "а: ", а хочется, чтобы выводилось "а: А".
вот часть php.ini:
Помогайте.
Здравствуйте!
есть некоторый скриптец:
Код:
<?php
session_start();
session_register("a");
if ($HTTP_POST_VARS['act'] == "aut")
{
$HTTP_SESSION_VARS['a'] = "A";
}
echo("a: ".$HTTP_SESSION_VARS['a']);
session_destroy();
$html = "<form action=\"".$_SESSION[PHP_SELF]."\" method=\"POST\">";
$html .= "<input type=\"hidden\" name=\"act\" value=\"aut\">";
$html .= "<input type=\"Submit\">";
$html .= "</form>";
echo($html);
?>
session_start();
session_register("a");
if ($HTTP_POST_VARS['act'] == "aut")
{
$HTTP_SESSION_VARS['a'] = "A";
}
echo("a: ".$HTTP_SESSION_VARS['a']);
session_destroy();
$html = "<form action=\"".$_SESSION[PHP_SELF]."\" method=\"POST\">";
$html .= "<input type=\"hidden\" name=\"act\" value=\"aut\">";
$html .= "<input type=\"Submit\">";
$html .= "</form>";
echo($html);
?>
Запрашиваю этот скрипт браузером - выводится "а: ". Жму Submit - в браузере выводится "а: А". Закрываю окно браузера, открываю новое и опять на этот скрипт - выводится "а: ", а хочется, чтобы выводилось "а: А".
вот часть php.ini:
Код:
[Session]
session.save_handler =
files session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 1000
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter =
nocache session.cache_expire =
180 session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
session.save_handler =
files session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 1000
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter =
nocache session.cache_expire =
180 session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
Помогайте.
Функция session_destroy() закрывает ссесию, а следовательно удаляет все переменные. Убери ее и все будет работать.
Простой пример:
Код:
<?
session_start();
if (!isset($_SESSION['counter']))
$_SESSION['counter']=0;
echo "Вы обновили эту страницу ".
$_SESSION['counter']++." раз.
<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">обновить";
?>
session_start();
if (!isset($_SESSION['counter']))
$_SESSION['counter']=0;
echo "Вы обновили эту страницу ".
$_SESSION['counter']++." раз.
<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">обновить";
?>
это код работает, а вот
Код:
<?
session_start();
if (!isset($_SESSION['counter']))
$_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз.
<a href=".$_SERVER['PHP_SELF'].">обновить";
?>
session_start();
if (!isset($_SESSION['counter']))
$_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз.
<a href=".$_SERVER['PHP_SELF'].">обновить";
?>
работать уже не хочет!
Цитата:
Originally posted by GHopper
После вызова session_start(); кука не ставится!
После вызова session_start(); кука не ставится!
Так может проблема в браузере?
Что говорит массив $_COOKIE?
Цитата:
Originally posted by mfender
Так может проблема в браузере?
Что говорит массив $_COOKIE?
Так может проблема в браузере?
Что говорит массив $_COOKIE?
Проблема в браузере! Немножко изменил php.ini:
session.save_path = "/tmp"; session.use_trans_sid = 1;
Немножко изменил сам скрипт:
Код:
<?
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
print_r($_SESSION);
echo "Вы обновили эту страницу ".
$_SESSION['counter']++." раз.
<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">обновить";
?>
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
print_r($_SESSION);
echo "Вы обновили эту страницу ".
$_SESSION['counter']++." раз.
<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">обновить";
?>
Спускаю браузер на этот скрипт, вижу следующее:
Код:
Array ( [counter] => 0 ) Вы обновили эту страницу 0 раз.
обновить
обновить
Кнопка F5 картину не меняет, зато при каждом ее нажатии на сервере в "/tmp" появляется новый файл сессии. Если жать ссылку "Обновить", то все работат как нужно и файл на сессии создается лишь один и счетчик переменной в этом файле увеличивается с каждым разом. Браузер куку себе никакую не ставит.
Забыл сказать, что setcookie() работает. Браузер сохраняет все куки, какие мне нужно и впоследующем благополучно передает их обратно серверу. вот только одна проблема: время жизни куки time()+3600 нифига не работает, а если напсать число побольше (знаков шесть) то все ОК!