public DynamicPages(string PageUrl, MySqlConnection SqlConnection, Member LoggedInMember, Logging Log, HttpHeader HttpHead, Events Event) { this.LoggedInMember = LoggedInMember; this.Log = Log; this.SqlConnection = SqlConnection; this.HttpHead = HttpHead; this.Event = Event; #region PageUrl if (PageUrl == "/") PageUrl = "/home/"; else PageUrl = PageUrl.ToLower(); if (!PageUrl.StartsWith("/")) PageUrl = "/" + PageUrl; if (!PageUrl.EndsWith("/")) PageUrl = PageUrl + "/"; this.PageURL = PageUrl; #endregion string Domain = HttpContext.Current.Request.Url.Host.ToLower(); CurrentPage = new Page(PageUrl, Domain, SqlConnection); if (CurrentPage.Exists) { if (CurrentPage.RequireSecure || LoggedInMember.RequestSecure) Utilities.MoveToSecure(); if (!CurrentPage.HtmlPage) { if (CurrentPage.Compiled) { PageObject = Assembly.Load(CurrentPage.CompiledCode).CreateInstance("BlazeGames.Web." + "DynamicPage"); onPagePreInitialize(); if (!onPageAuthenticate()) { Event.Call("AuthenticateFailure()"); ErrorManager.Error("Please login to view this page."); } else Event.Call("AuthenticateSuccess()"); } else { if (LoggedInMember.Authority >= 5) ErrorManager.Message("<a href='/Admin/Pages/?Act=Compile&ID=" + CurrentPage.ID + "'>This page needs compiled first.</a>"); else ErrorManager.Error("A developer needs to compile this page first."); } } } else { HttpContext.Current.Response.StatusCode = 404; ErrorManager.Message("<img onclick='window.location=\"/Home/\";' style='margin-left:-10px;margin-top:-10px;margin-bottom:-14px;cursor:pointer;' src='https://c326078.ssl.cf1.rackcdn.com/404.png' alt='Error 404, The page you requested was not found on our server.' />"); } }
public virtual void onPagePreInitialize(MySqlConnection SQLConn, HttpContext Http, Member LoggedInMember, Logging Log, Page CurrentPage, HttpHeader HttpHead, Events Event) { this.SqlConnection = SQLConn; this.Http = Http; this.LoggedInMember = LoggedInMember; this.Log = Log; this.CurrentPage = CurrentPage; this.HttpHead = HttpHead; this.Event = Event; }
protected void Page_Load(object sender, EventArgs e) { int i = 0; while(true) { i++; try { Response.Clear(); ErrorManager.Initialize(Member.Null()); if (Utilities.isMobileBrowser()) Utilities.MoveToSecure(); DateTime startTime = DateTime.Now; string HTTP_Protocol = (Request.IsSecureConnection) ? "https://" : "http://"; Uri PageUri = new Uri(HTTP_Protocol + Request.Url.Host + Request.RawUrl); try { SqlConnection = new MySqlConnection("Server=localhost;Uid=root;Pwd=hl1vlAbR9a3Riu;database=blazegameshome5;Pooling=true;Min Pool Size=5;Max Pool Size=60;"); SqlConnection.Open(); } catch (MySql.Data.MySqlClient.MySqlException) { MySqlConnection.ClearAllPools(); SqlConnection = new MySqlConnection("Server=localhost;Uid=root;Pwd=hl1vlAbR9a3Riu;database=blazegameshome5"); SqlConnection.Open(); } #region Build PageEditor If Needed BlazeGames.Web.Core.Page PageEditor = new BlazeGames.Web.Core.Page(1, SqlConnection); if (PageEditor.Code != File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/bin/PageEditor.cs")) { PageEditor.Code = File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/bin/PageEditor.cs"); System.CodeDom.Compiler.CompilerErrorCollection errors = PageEditor.Compile(); if (errors.Count >= 1) ErrorManager.Error(errors[0].ErrorText); } #endregion ErrorManager.Initialize(SqlConnection); string NewSessionKey = ""; while (true) { NewSessionKey = Guid.NewGuid().ToString(); MySqlCommand SessionVerifyQuery = new MySqlCommand("SELECT ID FROM members WHERE WebSessionKey=@WebSessionKey", SqlConnection); SessionVerifyQuery.Parameters.AddWithValue("@WebSessionKey", NewSessionKey); MySqlDataReader SessionVerifyReader = SessionVerifyQuery.ExecuteReader(); if (!SessionVerifyReader.Read()) { SessionVerifyReader.Close(); break; } else { SessionVerifyReader.Close(); continue; } } if (Request.Cookies["BlazeGames"] == null) { BGxCookie = new System.Web.HttpCookie("BlazeGames"); BGxCookie.Values.Add("WebSession", NewSessionKey); BGxCookie.Expires = DateTime.Now.AddDays(7); BGxCookie.Domain = ".blaze-games.com"; Response.Cookies.Add(BGxCookie); } else { BGxCookie = Request.Cookies["BlazeGames"]; System.Web.HttpCookie BGxCookieNew = new System.Web.HttpCookie("BlazeGames"); BGxCookieNew.Values.Add("WebSession", BGxCookie.Values["WebSession"]); BGxCookieNew.Expires = DateTime.Now.AddDays(7); BGxCookieNew.Domain = ".blaze-games.com"; Response.Cookies.Add(BGxCookieNew); BGxCookie = BGxCookieNew; } //Response.Write(BGxCookie.Values["WebSession"] + "<br />" + Request.UserHostAddress); //Response.End(); Member LoggedInMember; if (Utilities.GET("Account") != "" && Utilities.GET("Password") != "") { string Account = Utilities.GET("Account"), Password = Utilities.GET("Password"); if (Member.TryLoginWithPassword(Account, Password, SqlConnection)) LoggedInMember = new Member(Account, SqlConnection); else LoggedInMember = new Member(BGxCookie.Values["WebSession"], Request.UserHostAddress, SqlConnection); } else LoggedInMember = new Member(BGxCookie.Values["WebSession"], Request.UserHostAddress, SqlConnection); if (Utilities.POST("Account") != "" && Utilities.POST("Password") != "" && Utilities.POST("Act") == "Login" && !LoggedInMember.IsValid) { if (!Member.Login(Utilities.POST("Account"), Utilities.POST("Password"), BGxCookie.Values.Get("WebSession"), Request.UserHostAddress, SqlConnection)) ErrorManager.Fatal("Login Failed!\r\n<a href='" + PageUri.AbsolutePath + "'>Go Back</a><script>setTimeout('location.href = \"" + PageUri.AbsolutePath + "\";', 2500);</script>", "Account: " + Utilities.POST("Account") + "<br />Hash: " + Member.HashPassword(Utilities.POST("Password"))); else { LoggedInMember.Load(); ErrorManager.Initialize(LoggedInMember); ErrorManager.Message("Login Complete!\r\n<a href='" + PageUri.AbsolutePath + "'>Continue</a><script>setTimeout('location.href = \"" + PageUri.AbsolutePath + "\";', 2500);</script>"); } } else if (Utilities.GET("Act") == "Logout") { BGxCookie = new System.Web.HttpCookie("BlazeGames"); BGxCookie.Values.Add("WebSession", Guid.NewGuid().ToString()); BGxCookie.Domain = ".blaze-games.com"; BGxCookie.Expires = DateTime.Now.AddMonths(1); Response.Cookies.Add(BGxCookie); ErrorManager.Initialize(new Member("", "", SqlConnection)); ErrorManager.Message("Logout Complete!\r\n<a href='" + PageUri.AbsolutePath + "'>Go Back</a><script>setTimeout('location.href = \"" + PageUri.AbsolutePath + "\";', 2500);</script>"); } LoggedInMember.Load(); ErrorManager.Initialize(LoggedInMember); Logging Log = new Logging(SqlConnection, LoggedInMember); HttpHeader HttpHead = new HttpHeader(); Core.Events Event = new Core.Events(); PageSys = new DynamicPages(PageUri.AbsolutePath, SqlConnection, LoggedInMember, Log, HttpHead, Event); PageSys.onPageInitialize(); PageSys.onPageLoad(); string Buffer = ""; if (Utilities.isMobileApps()) Buffer = File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/MobileApps/index.txt"); else if (Utilities.isMobileBrowser()) Buffer = File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Mobile/index.txt"); else Buffer = File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/" + HttpHead.Theme + "/index.txt"); Buffer = Buffer.Replace("<!--{PageHeader}-->", HttpHead.ToString() + "\r\n<style type='text/css'>\r\n" + PageSys.CurrentPage.PageCSS + "\r\n</style>\r\n" + "<script type='text/javascript'>\r\n" + PageSys.CurrentPage.PageJS + "\r\n</script>"); Buffer = Buffer.Replace("<!--{PageContents}-->", PageSys.CurrentPage.PageHTML); Buffer = Buffer.Replace("<!--{PageCode}-->", PageSys.onPageReturn()); Buffer = Buffer.Replace("<!--{WIDGET_Clock}-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Clock.txt")); if (LoggedInMember.IsValid) Buffer = Buffer.Replace("<!--{WIDGET_Login}-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Login_Member.txt")); else Buffer = Buffer.Replace("<!--{WIDGET_Login}-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Login_Guest.txt")); Buffer = Buffer.Replace("<!--{WIDGET_Social)-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Social.txt")); Buffer = Buffer.Replace("<!--{WIDGET_Posts}-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Posts.txt")); Buffer = Buffer.Replace("<!--{Time}-->", Utilities.GetDateTime()); Buffer = Buffer.Replace("<!--{Nickname}-->", LoggedInMember.Nickname); Buffer = Buffer.Replace("<!--{ProfileImage}-->", LoggedInMember.GetProfileImage()); Buffer = Buffer.Replace("<!--{Url_Secure)-->", Utilities.GetCurrentUrl(true)); Buffer = Buffer.Replace("<!--{PageName}-->", PageSys.PageURL); foreach (string ParamKey in HttpHead.ThemeParameters.Keys) Buffer = Buffer.Replace("{" + ParamKey + "}", HttpHead.ThemeParameters[ParamKey]); Buffer = Buffer.Replace("{ThemePath}", "/Themes/" + HttpHead.Theme + "/"); DateTime stopTime = DateTime.Now; TimeSpan duration = stopTime - startTime; SqlConnection.CancelQuery(100); SqlConnection.Close(); //SqlConnection.Dispose(); Response.Write(@"<!-- ------------------------------------------ ---- Blaze Games Web v5 Debug Console ---- ------------------------------------------ Script Execution Time: " + duration.Milliseconds + @"MS sqlConnection State: " + SqlConnection.State + @" --> "); Response.Write(Buffer); Response.Flush(); Response.End(); PageSys.onPageUnLoad(); break; } catch (Exception ex) { if (i == 5) { throw ex; } continue; } } }