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

Ваш аккаунт

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

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

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

Sessions

333
29 апреля 2006 года
GHopper
200 / / 28.12.2004
Здравствуйте!
есть некоторый скриптец:
Код:
<?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);
?>

Запрашиваю этот скрипт браузером - выводится "а: ". Жму 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="


Помогайте.
17K
30 апреля 2006 года
FireDragon
2 / / 24.03.2006
Цитата:
Originally posted by GHopper
Здравствуйте!
есть некоторый скриптец:
Код:
<?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);
?>

Запрашиваю этот скрипт браузером - выводится "а: ". Жму 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_destroy() закрывает ссесию, а следовательно удаляет все переменные. Убери ее и все будет работать.

333
30 апреля 2006 года
GHopper
200 / / 28.12.2004
После вызова session_start(); кука не ставится!
Простой пример:

 
Код:
<?
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'].">обновить";
?>

работать уже не хочет!
8
01 мая 2006 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by GHopper
После вызова session_start(); кука не ставится!


Так может проблема в браузере?
Что говорит массив $_COOKIE?

333
01 мая 2006 года
GHopper
200 / / 28.12.2004
Цитата:
Originally posted by mfender
Так может проблема в браузере?
Что говорит массив $_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().">обновить";
?>

Спускаю браузер на этот скрипт, вижу следующее:
 
Код:
Array ( [counter] => 0 ) Вы обновили эту страницу 0 раз.
обновить

Кнопка F5 картину не меняет, зато при каждом ее нажатии на сервере в "/tmp" появляется новый файл сессии. Если жать ссылку "Обновить", то все работат как нужно и файл на сессии создается лишь один и счетчик переменной в этом файле увеличивается с каждым разом. Браузер куку себе никакую не ставит.
333
01 мая 2006 года
GHopper
200 / / 28.12.2004
Забыл сказать, что setcookie() работает. Браузер сохраняет все куки, какие мне нужно и впоследующем благополучно передает их обратно серверу. вот только одна проблема: время жизни куки time()+3600 нифига не работает, а если напсать число побольше (знаков шесть) то все ОК!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог