Re: [Cppcms-users] session question about cppcms
Brought to you by:
artyom-beilis
From: Artyom B. <art...@ya...> - 2011-11-20 11:32:37
|
response().out() << wrapper_function <<'('; auto_ptr<cppdb::session> session = sql_session_factory::create_session(); shared_ptr<web_user> user = user_manager::login(*session,email,pwd); if(user){ BOOSTER_INFO("hello") << "login succeeded"; this->session()["email"]=user->email; response().out()<<"{result:\"Login successfully!\"}"; This is exactly the problem I described. You must set session value beforeyou call response().out() Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.sf.net/ CppDB - C++ SQL Connectivity: http://cppcms.sf.net/sql/cppdb/ >________________________________ > From: 陈抒 <csf...@gm...> >To: Artyom Beilis <art...@ya...>; cpp...@li... >Sent: Sunday, November 20, 2011 1:17 PM >Subject: Re: [Cppcms-users] session question about cppcms > > >I change my codes order like so,but I am using JSONP,Javascript code on client-side calls hello::login method on server-side via JSONP and HTTP POST. >I can see the transferred data between browser and server by using Chromium debugger.No cookie found. > > > > >void hello::login(string str){ > if(request().request_method()=="POST") { >//string wrapper_function = request().get("callback"); >string email = request().post().find("email")->second; >string pwd = request().post().find("pwd")->second; >string wrapper_function = request().post().find("callback")->second; >BOOSTER_INFO("hello") << "email:" << email <<" pwd=" <<pwd <<" callback="<< wrapper_function; >try{ > response().out() << wrapper_function <<'('; > auto_ptr<cppdb::session> session = sql_session_factory::create_session(); > shared_ptr<web_user> user = user_manager::login(*session,email,pwd); > if(user){ >BOOSTER_INFO("hello") << "login succeeded"; >this->session()["email"]=user->email; >response().out()<<"{result:\"Login successfully!\"}"; >response().out() << ')'; > > >BOOSTER_INFO("hello") <<"session has email now:"<<this->session()["email"]; > }else{ >BOOSTER_INFO("hello") << "login failed"; >response().out()<<"{result:\"Login failed!\"}"; >response().out() << ')'; > } >}catch(std::exception const& ex){ > response().out() << wrapper_function <<'('; > response().out()<<"{result:\""<<ex.what()<<"\"}"; > response().out() << ')'; >} > } >} > > > > > > > > >陈抒 >Best regards >http://blog.csdn.net/sheismylife > > > >On Sun, Nov 20, 2011 at 6:06 PM, Artyom Beilis <art...@ya...> wrote: > >Hello, >> >> >>Make sure you update the session **before** any output is written. The session >>is saved on first access to response().out() as Cookies should be send in HTTP >>headers before the content. >> >>Also take a look on server response that sets the session see if it includes proper >>cookie. >> >> >>Artyom Beilis >>-------------- >>CppCMS - C++ Web Framework: http://cppcms.sf.net/ >>CppDB - C++ SQL Connectivity: http://cppcms.sf.net/sql/cppdb/ >> >> >>>________________________________ >>> From: 陈抒 <csf...@gm...> >>>To: cpp...@li... >>>Sent: Sunday, November 20, 2011 11:56 AM >>>Subject: [Cppcms-users] session question about cppcms >> >>> >>> >>>Hello, >>> I try to save an email address of current user into session after he logs into web server correctly.Here is my codes: >>>... >>>this->session()["email"]=user->email; >>>BOOSTER_INFO("hello") <<"session has email now:"<<this->session()["email"]; >>>... >>> >>> Then I refresh the page,and debug into my application,but can't find the email from session >>> >>>void hello::welcome(std::string url){ >>> BOOSTER_INFO("hello") << "Enter welcome function"; >>> if(session().is_set("email")){ >>> string email = this->session().get(string("email")); >>> c_.email = email; >>> } >>> render("my_skin","message",c_); >>>} >>> >>> >>> session().is_set("email") returns false; >>> >>> >>>My session configuration looks like so: >>> "session" : { >>>"expire" : "renew", >>>"timeout" : 600, >>>"location" : "server", >>>"server":{ >>> "storage":"memory" >>>} >>> } >>> >>> >>> >>> >>> >>> >>>陈抒 >>>Best regards >>>http://blog.csdn.net/sheismylife >>> >>>------------------------------------------------------------------------------ >>>All the data continuously generated in your IT infrastructure >>>contains a definitive record of customers, application performance, >>>security threats, fraudulent activity, and more. Splunk takes this >>>data and makes sense of it. IT sense. And common sense. >>>http://p.sf.net/sfu/splunk-novd2d >>>_______________________________________________ >>>Cppcms-users mailing list >>>Cpp...@li... >>>https://lists.sourceforge.net/lists/listinfo/cppcms-users >>> >>> >>> >> >>------------------------------------------------------------------------------ >>All the data continuously generated in your IT infrastructure >>contains a definitive record of customers, application performance, >>security threats, fraudulent activity, and more. Splunk takes this >>data and makes sense of it. IT sense. And common sense. >>http://p.sf.net/sfu/splunk-novd2d >>_______________________________________________ >>Cppcms-users mailing list >>Cpp...@li... >>https://lists.sourceforge.net/lists/listinfo/cppcms-users >> > >------------------------------------------------------------------------------ >All the data continuously generated in your IT infrastructure >contains a definitive record of customers, application performance, >security threats, fraudulent activity, and more. Splunk takes this >data and makes sense of it. IT sense. And common sense. >http://p.sf.net/sfu/splunk-novd2d >_______________________________________________ >Cppcms-users mailing list >Cpp...@li... >https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > |