Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сесии, в чом трабл? 
:(
    Опции темы
Jlekc
Дата 13.6.2005, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 520
Регистрация: 10.2.2005
Где: Leopolis

Репутация: нет
Всего: 4



допустим есть:
Код

<?
class Count{
    var $c = 0;
    function inc(){
        echo 'inc';
        $this->c++;
    }
    function show(){
        echo $this->c;
    }
}

?>

регю сесию, и отрабатываю сорс:
Код

session_start();
if(!session_is_registered('count')){
    $count = new Count();
    session_register('count');
}else{
    $count = $_SESSION['count'];
}

$count->inc();
$count->show();

рефрешу, не пашет(((
вернее в $_SESSION был зареген $count, данные считал, но по новому рефрешу не перезаписал их


есе же сделать указатель:
Код

$count = &$_SESSION['count'];

то какбы все гууд


вроде раньше без указателей работал smile
сижу в пхп.ини но чот ниче не вижу, хелп плз


--------------------
PM MAIL ICQ   Вверх
Mal Hack
Дата 13.6.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Объект нельзя в сессии регистрировать. Только если с испольщованием serialize();
И вообще код у тебя не совсем верный.
Вот так было бы лучше:
Код
session_start();
if(!issen($_SESSION['count'])){
    $count = new Count();
    $_SESSION['count'] = serialize( $count );
}else{
    $count = unserialize( $_SESSION['count'] );
}
$count->inc();
$count->show();

Добавлено @ 18:16
Цитата(Jlekc @ 13.6.2005, 19:04)
есе же сделать указатель:

Указателей в PHP нет, как таковых. Это - вроде как ссылка.
PM ICQ   Вверх
Jlekc
Дата 13.6.2005, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 520
Регистрация: 10.2.2005
Где: Leopolis

Репутация: нет
Всего: 4



Цитата(Mal @ 13.6.2005, 18:16)
Только если с испольщованием serialize();

хмм, а почему работает через
Код

$count = &$_SESSION['count'];

??

Цитата(Mal @ 13.6.2005, 18:16)
Это - вроде как ссылка

Всегда воспренимал ссылку на данные - '='.
А указатель на область памяти данных - '&'.
мож в пхп другии термены, не буду спорить


Цитата(Mal @ 13.6.2005, 18:16)
$_SESSION['count'] = serialize( $count );

данное действее нуна будет, делать 'внизу' (в конце отработаного сорса), после всех изменений в Объекте.
Кажись это не оч красиво. Проще использываться &.

ЗЫ: вопрос остаеться открытым, должно работать и без всяких извратов.


--------------------
PM MAIL ICQ   Вверх
Mal Hack
Дата 13.6.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Jlekc @ 13.6.2005, 19:41)
хмм, а почему работает через

Все правильно... Я с ресурсом спутал.
Хотя логически все равно не понимаю... По логике свойства-то он сохранит, а вот методы не должен.

Цитата(Jlekc @ 13.6.2005, 19:41)
Всегда воспренимал ссылку на данные - '='.
А указатель на область памяти данных - '&'.

Есть такая фишка в 4 PHP, что при создании переменной создаются ее две копии.

Цитата(Jlekc @ 13.6.2005, 19:41)
данное действее нуна будет, делать 'внизу' (

Перед тем как в сессию записать.

PM ICQ   Вверх
Jlekc
Дата 13.6.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 520
Регистрация: 10.2.2005
Где: Leopolis

Репутация: нет
Всего: 4



Цитата(Mal @ 13.6.2005, 18:47)
Перед тем как в сессию записать

после всех изменений в екземпляре класса


--------------------
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.