LINUX.ORG.RU

mod_perl2 сессии


0

1

Всем привет, в инете полно примеров как использовать сессии в mod_perl Apache 1.x, однако для mod_perl2 я ни одного рабочего примера найти не могу. Может тут кто знаком с этим и даст пример как оно там работает? а то 2 дня уже ломаю голову работает на половину. на данный момент есть такой кусок кода тупо создать сессию и вытащить из нее значение если сессия есть:

 use Apache2::Request; 
 use Apache2::RequestRec; 
 use Apache::Session::File; 
  
$req = Apache2::Request->new($r); 
    
# check if session exists 
  
 $cookie = $req->headers_in->{Cookie} || undef; 
  
 if ($cookie) { 
 $cookie =~ s/SESSION_ID=(\w*)/$1/; 
  
 tie %session, 'Apache::Session::File', $cookie, 
 { Directory => "/tmp/plsessions/", 
   LockDirectory => "/tmp/plsessionslock/" }; 
  
 $acc_fromsess = $session{acc_id}; 
 print "Yes cookie = $cookie<br>"; 
 print "acc_fromsess = $acc_fromsess<br>"; 
 } 
  
 else { 
 #create a new session, give them their cookie back 
  
 tie %session, 'Apache::Session::File', $cookie, 
 { Directory => "/tmp/plsessions/", 
   LockDirectory => "/tmp/plsessionslock/" }; 
  
 $session_cookie = "SESSION_ID=$session{_session_id};"; 
 $req->headers_out->set('Set-Cookie' => $session_cookie); 
 print "No cookie, new = $session_cookie<br>"; 
 $session{acc_id} = "234"; 
 } 

при этом создание новой сессии происходит нормально, а вот проверка существующей сессии, падает с ошибкой malloc в логе:
==> /etc/httpd/logs/error_log <==
*** glibc detected *** /var/www/trade: malloc(): smallbin double linked list corrupted: 0x00007f3bfecbb960 ***

помогите плиз понять что не так или хотя бы пример работы с сессией в mod_perl2


тему можно закрывать, забыл одну строчку добавить:

untie %session;

httpd
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.