diff --git a/Global.h b/Global.h index da6693f..b7021e8 100644 --- a/Global.h +++ b/Global.h @@ -1,8 +1,9 @@ #ifndef __Global_h__ -#define __Global_h__ +# define __Global_h__ -#include "MString.h" -#include +# include "MString.h" +# include "CGIFormattedData.h" +# include namespace jet { @@ -25,6 +26,8 @@ namespace jet { void setupFormURLEncoded(coreutils::ZString &formdata); char *errorCursor = NULL; + + coreutils::CGIFormattedData cookies; std::map variables; std::map cgiVariables; std::map sessions; @@ -33,6 +36,7 @@ namespace jet { char **envp; bool cgi = false; bool session = false; + coreutils::MString sessionId; }; diff --git a/Tag.cpp b/Tag.cpp index 5344eb2..9120131 100644 --- a/Tag.cpp +++ b/Tag.cpp @@ -401,6 +401,9 @@ namespace jet { } else if(variable.ifNext("%")) { renderVariableName(variable, name, modifier); return getenv(name.c_str()); + } else if(variable.ifNext("^")) { + renderVariableName(variable, name, modifier); + return global.cookies.data[variable]; } else { renderVariableName(variable, name, modifier); name.split("."); diff --git a/__jet.cpp b/__jet.cpp index b8bf136..43ae46e 100644 --- a/__jet.cpp +++ b/__jet.cpp @@ -1,5 +1,6 @@ #include "__jet.h" #include "Exception.h" +#include "Global.h" #include #include #include @@ -12,9 +13,7 @@ namespace jet { global.cgi = true; if(keywordDefined("sessiondir")) { - coreutils::ZString cookies = getenv("HTTP_COOKIE"); - storeVariable("cookies", cookies, "global"); - + cookies = getenv("HTTP_COOKIE"); global.session = true; // if request_has_cookie then // pull sessionfile from sessiondir.