Loading src/blogi.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -233,8 +233,12 @@ void blogi::Blogi::logoutPage(libhttppp::HttpRequest *curreq,const int tid,const } libhttppp::HttpResponse curres; libhttppp::HttpCookie cookie; //need remove method cookie.setcookie(&curres,"sessionid","empty"); Session sess(PlgArgs->database[tid]); sess.delSessionData(sessiondid,"uid"); sess.delSessionData(sessiondid,"username"); curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); *curres.setData("Location") << PlgArgs->config->getstartpage(); Loading src/session.cpp +21 −5 Original line number Diff line number Diff line Loading @@ -101,11 +101,26 @@ void blogi::Session::addSessionData(const char *sessionid,const char *key,const sql << "INSERT INTO session_data (sessionid,key,value) VALUES ('" << sql.escaped(sbuf,sessionid) << "','" << sql.escaped(sbuf,key) << "','" << sql.escaped(sbuf,value) << "');"; _sessiondb->exec(&sql,res); }; void blogi::Session::delSessionData(const char* sessionid, const char* key){ if(!sessionid || !key){ libhttppp::HTTPException excep; excep[libhttppp::HTTPException::Error] << "addSessionData Session:" << sessionid << "not found!"; excep[libhttppp::HTTPException::Error] << "delSessionData Sessionid or key could not be zero!"; throw excep; }; } blogi::DBResult res; blogi::SQL sql; std::vector<char> sbuf; sql << "DELETE FROM session_data WHERE sessionid='" << sql.escaped(sbuf,sessionid) << "' AND key='" << sql.escaped(sbuf,key) << "';"; _sessiondb->exec(&sql,res); } void blogi::Session::getSessionData(const char *sessionid,const char *key,std::string &value){ if(!sessionid || !key ){ Loading Loading @@ -140,9 +155,10 @@ bool blogi::Session::exists(const char* sessionid){ } blogi::DBResult res; std::vector<char> sbuf; blogi::SQL sql; sql << "Select id from session where id='" << sessionid <<"'"; sql << "Select id from session where id='" << SQL::escaped(sbuf,sessionid) <<"'"; if(_sessiondb->exec(&sql,res)>0) return true; Loading src/session.h +1 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ namespace blogi { const char *createSession(char *buf,const char *useragent); void addSessionData(const char *sessionid,const char *key,const char *value); void delSessionData(const char *sessionid,const char *key); void getSessionData(const char *sessionid,const char *key,std::string &value); bool exists(const char *sessionid); Loading Loading
src/blogi.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -233,8 +233,12 @@ void blogi::Blogi::logoutPage(libhttppp::HttpRequest *curreq,const int tid,const } libhttppp::HttpResponse curres; libhttppp::HttpCookie cookie; //need remove method cookie.setcookie(&curres,"sessionid","empty"); Session sess(PlgArgs->database[tid]); sess.delSessionData(sessiondid,"uid"); sess.delSessionData(sessiondid,"username"); curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); *curres.setData("Location") << PlgArgs->config->getstartpage(); Loading
src/session.cpp +21 −5 Original line number Diff line number Diff line Loading @@ -101,11 +101,26 @@ void blogi::Session::addSessionData(const char *sessionid,const char *key,const sql << "INSERT INTO session_data (sessionid,key,value) VALUES ('" << sql.escaped(sbuf,sessionid) << "','" << sql.escaped(sbuf,key) << "','" << sql.escaped(sbuf,value) << "');"; _sessiondb->exec(&sql,res); }; void blogi::Session::delSessionData(const char* sessionid, const char* key){ if(!sessionid || !key){ libhttppp::HTTPException excep; excep[libhttppp::HTTPException::Error] << "addSessionData Session:" << sessionid << "not found!"; excep[libhttppp::HTTPException::Error] << "delSessionData Sessionid or key could not be zero!"; throw excep; }; } blogi::DBResult res; blogi::SQL sql; std::vector<char> sbuf; sql << "DELETE FROM session_data WHERE sessionid='" << sql.escaped(sbuf,sessionid) << "' AND key='" << sql.escaped(sbuf,key) << "';"; _sessiondb->exec(&sql,res); } void blogi::Session::getSessionData(const char *sessionid,const char *key,std::string &value){ if(!sessionid || !key ){ Loading Loading @@ -140,9 +155,10 @@ bool blogi::Session::exists(const char* sessionid){ } blogi::DBResult res; std::vector<char> sbuf; blogi::SQL sql; sql << "Select id from session where id='" << sessionid <<"'"; sql << "Select id from session where id='" << SQL::escaped(sbuf,sessionid) <<"'"; if(_sessiondb->exec(&sql,res)>0) return true; Loading
src/session.h +1 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ namespace blogi { const char *createSession(char *buf,const char *useragent); void addSessionData(const char *sessionid,const char *key,const char *value); void delSessionData(const char *sessionid,const char *key); void getSessionData(const char *sessionid,const char *key,std::string &value); bool exists(const char *sessionid); Loading