Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=7485071&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Tue Apr 12 19:52:59 2016
Кодировка: Windows-1251
php, сессии, вопрос - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
dtbeaver
латентный вантузоид

Рег.: 04.01.2005
Сообщений: 7269
Рейтинг: 8194
  php, сессии, вопрос
      06.05.2008 00:23
 

могу ли я сохранить в сессии объект?

когда пишу так:
 
code:
class TUser { var $login; var $password; function TUser($login,$password) { $this->login = $login; $this->password = $password; } function Auth() { //... } } ... if($user->Auth() == 1) { $content = "Регистрация прошла успешно. <br>\n"; $content .= "Вы вошли как ".$user->login."<br>"; $_SESSION['current_user']=$user; } else ... ... if(session_is_registered('current_user')) { $user = $_SESSION['current_user']; $content = "Регистрация прошла успешно. <br>\n"; $content .= "Вы вошли как ".$user->login."<br>"; ...


 - оно не работает, выдает пустую строку вместо логина.



StepLg
смотритель

Рег.: 26.11.2005
Сообщений: 350
Из: Москва
Рейтинг: 25
  Re: php, сессии, вопрос [re: dtbeaver]
      06.05.2008 00:33
5

в сессии нельзя хранить объекты напрямую. используй сериализацию/ансериализацию.

Да, и совет. поставь в заголовок всех своих скриптов:

 
code:
@ini_set('asp_tags','off'); @ini_set('short_open_tag', 'off'); @ini_set('register_globals',0); @ini_set('display_errors',1); @ini_set('date.timezone',"Europe/Moscow"); @ini_set('max_execution_time', 10); @set_time_limit(10); //@ini_set('memory_limit',"32M"); @error_reporting(E_ALL | E_NOTICE | E_WARNING | E_PARSE | E_ERROR | E_STRICT); setlocale(LC_ALL,"ru_RU.UTF-8"); mb_internal_encoding('UTF-8'); mb_regex_encoding('UTF-8'); mb_language('uni');


(кодировка, соответственно, должна быть UTF-8). Если не ошибаюсь, тебе должны выдасться предупреждения, когда ты будешь пытаться запихнуть в сессию экземпляр класса.

mkal
RIP

Рег.: 29.12.2004
Сообщений: 3036
Рейтинг: 1658
  Re: php, сессии, вопрос [re: dtbeaver]
      06.05.2008 00:33
3

попробуй его серилизовать перед сохранением и десерилизовать после чтения, должно работать. Только ресурсы так сохранить не получится, думаю (дескрипторы файлов и бд и т.п.)

dtbeaver
латентный вантузоид

Рег.: 04.01.2005
Сообщений: 7269
Рейтинг: 8194
  Re: php, сессии, вопрос [re: StepLg]
      06.05.2008 00:38
-1

спасибо, я уже тоже подумал про сериализацию, но очень влом делать, думал вдруг можно малой кровью.
а насчет этой магии
 
code:
@ini_set('asp_tags','off'); @ini_set('short_open_tag', 'off'); @ini_set('register_globals',0); @ini_set('display_errors',1); @ini_set('date.timezone',"Europe/Moscow"); @ini_set('max_execution_time', 10); @set_time_limit(10); //@ini_set('memory_limit',"32M"); @error_reporting(E_ALL | E_NOTICE | E_WARNING | E_PARSE | E_ERROR | E_STRICT);


если я оставлю только эти строки, я так понимаю юникод будет необязателен?
просто в юникод неохота все переводить, я под виндою сижу и не уверен что PHP Expert Editor
юникод схавает. не в блокноте же кодить.



dtbeaver
латентный вантузоид

Рег.: 04.01.2005
Сообщений: 7269
Рейтинг: 8194
  Re: php, сессии, вопрос [re: dtbeaver]
      06.05.2008 00:42
-1

кстати, а можно сериализовать в ассоциативный массив? он в сессии сохранится?



StepLg
смотритель

Рег.: 26.11.2005
Сообщений: 350
Из: Москва
Рейтинг: 25
  Re: php, сессии, вопрос [re: dtbeaver]
      06.05.2008 00:43
2

блокнот как раз точно не схавает:) да, будет работать.

строчки с mb_* устанавливали кодировку для функций типа mb_* для того, чтобы они корректно работали с многобайтовыми кодировками.

Если Вы их не используете - все будет в порядке.

А для разработки очень рекомендую Eclipse + PDT. Уже год в ней работаю, на мой взгляд - лучшая из вещей. Попробуйте

eyescream
nächste Riff

Рег.: 20.02.2005
Сообщений: 426
Рейтинг: 392
  Re: php, сессии, вопрос [re: dtbeaver]
      06.05.2008 11:29
2

В ответ на:

спасибо, я уже тоже подумал про сериализацию, но очень влом делать, думал вдруг можно малой кровью




Что именно тебе здесь делать влом? [un]serialize($o)?



Current Mortal Sin: гордыня.
Current Wise Thought: was ist wenn der Vorhang fällt?
eyescream
nächste Riff

Рег.: 20.02.2005
Сообщений: 426
Рейтинг: 392
  Re: php, сессии, вопрос [re: mkal]
      06.05.2008 11:31
2

Ресурсы (я имею в виду тип resource здесь) в пхп это просто числа (типа хендлов). Сохранить-то их скорее всего получится, но толку вне контекста сохранения не будет никакого от них.



Current Mortal Sin: гордыня.
Current Wise Thought: was ist wenn der Vorhang fällt?
dtbeaver
латентный вантузоид

Рег.: 04.01.2005
Сообщений: 7269
Рейтинг: 8194
  Re: php, сессии, вопрос [re: eyescream]
      06.05.2008 16:59
1

проблема решена сериализацией в ассоциативный массив
в порядке флуда:
да, влом делать сериалайз и обратно. не потому что это сложно, а потому что есть хороший шанс забыть про это дело при изменении класса. было бы замечательно, если б сам пхп сериализовал объекты
и вообще, очень не хватает кнопки "Сделать зашибись"



lomik

Рег.: 30.12.2003
Сообщений: 778
Рейтинг: 475
  Re: php, сессии, вопрос [re: dtbeaver]
      06.05.2008 20:23
 

че-то у меня сложилось стойкое впечатление, что ты чего-то недопонимаешь, придумываешь какие-то сериализации в ассоциативные массивы...

http://ru2.php.net/serialize

dtbeaver
латентный вантузоид

Рег.: 04.01.2005
Сообщений: 7269
Рейтинг: 8194
  Re: php, сессии, вопрос [re: lomik]
      06.05.2008 21:14
 

внатуре недопонимаю. я думал имеется ввиду в принципе понятие преобразования в последовательную форму хранения - например в строку.



Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
1 зарегистрированных и 1 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в