From 5a0a8778478f3a50f1b065f2ee43c99d5e34a89e Mon Sep 17 00:00:00 2001 From: Kazuki Przyborowski Date: Mon, 3 Aug 2009 13:22:06 +0000 Subject: [PATCH] Added MySQL sessions with session_set_save_handler(). git-svn-id: svn://svn.code.sf.net/p/intdb/svn/trunk@287 2b68903e-0b30-0410-9a39-a2e4f3c5be39 --- inc/endpage.php | 5 +++-- inc/versioninfo.php | 6 +++--- mysql.php | 51 +++++++++++++++++++++++++++++++++++++++++++-------- setup/mkconfig.php | 12 +++--------- setup/mktable.php | 6 ++---- 5 files changed, 54 insertions(+), 26 deletions(-) diff --git a/inc/endpage.php b/inc/endpage.php index 06042f7..6e7a9e2 100644 --- a/inc/endpage.php +++ b/inc/endpage.php @@ -11,7 +11,7 @@ Copyright 2004-2009 iDB Support - http://idb.berlios.de/ Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/ - $FileInfo: endpage.php - Last Update: 6/16/2009 SVN 264 - Author: cooldude2k $ + $FileInfo: endpage.php - Last Update: 8/3/2009 SVN 287 - Author: cooldude2k $ */ $File3Name = basename($_SERVER['SCRIPT_NAME']); if ($File3Name=="endpage.php"||$File3Name=="/endpage.php") { @@ -32,5 +32,6 @@ if($_GET['debug']=="true"||$_GET['debug']=="on") { $endpagevar=$endpagevar."
\nFiles included: ".count_included_files()." ".$ThemeSet['LineDivider']." Execution Time: ".execution_time($starttime).$ThemeSet['LineDivider']."HTML".$ThemeSet['LineDivider']."CSS"; } $endpagevar=$endpagevar."\n"; echo $endpagevar; +session_write_close(); //@mysql_close(); -?> \ No newline at end of file +?> diff --git a/inc/versioninfo.php b/inc/versioninfo.php index 5042342..ae869ba 100644 --- a/inc/versioninfo.php +++ b/inc/versioninfo.php @@ -11,7 +11,7 @@ Copyright 2004-2009 iDB Support - http://idb.berlios.de/ Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/ - $FileInfo: versioninfo.php - Last Update: 8/1/2009 SVN 286 - Author: cooldude2k $ + $FileInfo: versioninfo.php - Last Update: 8/3/2009 SVN 287 - Author: cooldude2k $ */ $File3Name = basename($_SERVER['SCRIPT_NAME']); if ($File3Name=="versioninfo.php"||$File3Name=="/versioninfo.php") { @@ -27,8 +27,8 @@ function version_info($proname,$subver,$ver,$supver,$reltype,$svnver,$showsvn) { return $return_var; } // Version number and date stuff. :P $VER1[0] = 0; $VER1[1] = 2; $VER1[2] = 8; $VERFull[1] = $VER1[0].".".$VER1[1].".".$VER1[2]; -$VER2[0] = "Pre-Alpha"; $VER2[1] = "PA"; $VER2[2] = "SVN"; $SubVerN = 286; $RName = "iDB"; $SFName = "IntDB"; -$SVNDay[0] = 8; $SVNDay[1] = 1; $SVNDay[2] = 2009; $SVNDay[3] = $SVNDay[0]."/".$SVNDay[1]."/".$SVNDay[2]; +$VER2[0] = "Pre-Alpha"; $VER2[1] = "PA"; $VER2[2] = "SVN"; $SubVerN = 287; $RName = "iDB"; $SFName = "IntDB"; +$SVNDay[0] = 8; $SVNDay[1] = 3; $SVNDay[2] = 2009; $SVNDay[3] = $SVNDay[0]."/".$SVNDay[1]."/".$SVNDay[2]; $VerInfo['iDB_Ver'] = version_info($RName,$VER1[0],$VER1[1],$VER1[2],$VER2[1],$SubVerN,false); $VerInfo['iDB_Ver_SVN'] = version_info($RName,$VER1[0],$VER1[1],$VER1[2],$VER2[1],$SubVerN,true); $VerInfo['iDB_Full_Ver'] = version_info($RName,$VER1[0],$VER1[1],$VER1[2],$VER2[0],$SubVerN,false); diff --git a/mysql.php b/mysql.php index 303b834..9118aa1 100644 --- a/mysql.php +++ b/mysql.php @@ -11,7 +11,7 @@ Copyright 2004-2009 iDB Support - http://idb.berlios.de/ Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/ - $FileInfo: mysql.php - Last Update: 6/23/2009 SVN 268 - Author: cooldude2k $ + $FileInfo: mysql.php - Last Update: 8/3/2009 SVN 287 - Author: cooldude2k $ */ //@ini_set("display_errors", true); //@ini_set("display_startup_errors", true); @@ -157,6 +157,48 @@ if($GZipEncode['Type']!="gzip") { if($GZipEncode['Type']!="deflate") { $GZipEnco /* if(eregi("msie",$browser) && !eregi("opera",$browser)){ @header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); } */ // Some http stuff +$SQLStat = @ConnectMysql($Settings['sqlhost'],$Settings['sqluser'],$Settings['sqlpass'],$Settings['sqldb']); +@mysql_set_charset($SQLCharset); +if($SQLStat===false) { +@header("Content-Type: text/plain; charset=".$Settings['charset']); @mysql_free_result($peresult); +ob_clean(); echo "Sorry could not connect to mysql database.\nContact the board admin about error. Error log below."; +echo "\n".mysql_errno().": ".mysql_error(); +gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); } +$sqltable = $Settings['sqltable']; +function open( $save_path, $session_name ) { +global $sess_save_path; +$sess_save_path = $save_path; +return true; } +function close() { +return true; } +function read( $id ) { +global $sqltable; +$data = ""; +$time = time(); +$sqlr = query("SELECT `session_data` FROM `".$sqltable."sessions` WHERE `session_id` = '%s' AND `expires` > %i", array($id,$time)); +$rs = mysql_query($sqlr); +$a = mysql_num_rows($rs); +if($a > 0) { +$row = mysql_fetch_assoc($rs); +$data = $row['session_data']; } +return $data; } +function write( $id, $data ) { +global $sqltable; +$time = time() + ini_get("session.gc_maxlifetime"); +$sqlw = query("REPLACE `".$sqltable."sessions` VALUES('$id','$data', $time)", array($id,$data,$time)); +$rs = mysql_query($sqlw); +return true; } +function destroy( $id ) { +global $sqltable; +$sqld = query("DELETE FROM `".$sqltable."sessions` WHERE `session_id` = '$id'", array($id)); +mysql_query($sqld); +return true; } +function gc() { +global $sqltable; +$sqlg = query('DELETE FROM `'.$sqltable.'sessions` WHERE `expires` < UNIX_TIMESTAMP();', array(null)); +db_query($sqlg); +return true; } +@session_set_save_handler("open", "close", "read", "write", "destroy", "gc"); if($cookieDomain==null) { @session_set_cookie_params(0, $cbasedir); } if($cookieDomain!=null) { @@ -192,13 +234,6 @@ if(stristr($_SERVER["HTTP_ACCEPT"],"application/javascript") ) { @header("Content-Type: text/javascript; charset=".$Settings['charset']); } } require($SettDir['inc'].'javascript.php'); gzip_page($Settings['use_gzip'],$GZipEncode['Type']); die(); } -$SQLStat = @ConnectMysql($Settings['sqlhost'],$Settings['sqluser'],$Settings['sqlpass'],$Settings['sqldb']); -@mysql_set_charset($SQLCharset); -if($SQLStat===false) { -@header("Content-Type: text/plain; charset=".$Settings['charset']); @mysql_free_result($peresult); -ob_clean(); echo "Sorry could not connect to mysql database.\nContact the board admin about error. Error log below."; -echo "\n".mysql_errno().": ".mysql_error(); -gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); } if($Settings['use_captcha']=="on") { if($_GET['act']=="MkCaptcha"||$_GET['act']=="Captcha") { if($Settings['captcha_clean']=="on") { @ob_clean(); } diff --git a/setup/mkconfig.php b/setup/mkconfig.php index 86bfb88..237e623 100644 --- a/setup/mkconfig.php +++ b/setup/mkconfig.php @@ -84,6 +84,8 @@ $mydbtest = @ConnectMysql($_POST['DatabaseHost'],$_POST['DatabaseUserName'],$_PO if($mydbtest!==true) { $Error="Yes"; echo "
".mysql_errno().": ".mysql_error()."\n"; } if ($Error!="Yes") { +$query=query("CREATE TABLE `".$_POST['tableprefix']."sessions` ( `session_id` varchar(150) NOT NULL default '', `session_data` text NOT NULL, `expires` int(15) NOT NULL default '0', PRIMARY KEY (`session_id`)) TYPE=`MyISAM` DEFAULT CHARSET=`".$SQLCharset."`;", array(null)); +mysql_query($query); require($SetupDir['setup'].'mktable.php'); /* $query = query("INSERT INTO `".$_POST['tableprefix']."tagboard` VALUES (1,-1,'".$iDB_Author."',".$YourDate.",'Welcome to Your New Tag Board. ^_^','127.0.0.1'), array(null)); @@ -161,14 +163,6 @@ fclose($fp); $fp = fopen("settingsbak.php","w+"); fwrite($fp, $BoardSettingsBak); fclose($fp); -$_SESSION['Theme']="iDB"; -$_SESSION['MemberName']=$_POST['AdminUser']; -$_SESSION['UserID']=1; -$_SESSION['UserTimeZone']=$AdminTime; -$_SESSION['UserGroup']="Admin"; -$_SESSION['UserDST'] = $AdminDST; -$_SESSION['UserPass']=$NewPassword; -$_SESSION['DBName'] = $_POST['DatabaseName']; if($_POST['storecookie']=="true") { @setcookie("MemberName", $_POST['AdminUser'], time() + (7 * 86400), $this_dir, $URLsTest['host']); @setcookie("UserID", 1, time() + (7 * 86400), $this_dir, $URLsTest['host']); @@ -195,4 +189,4 @@ if($ConvertInfo['ConvertFile']!=null) { if($chdel0===false) { $chdel = false; }

- \ No newline at end of file + diff --git a/setup/mktable.php b/setup/mktable.php index df66836..a5f16d5 100644 --- a/setup/mktable.php +++ b/setup/mktable.php @@ -12,7 +12,7 @@ Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/ iDB Installer made by Game Maker 2k - http://idb.berlios.net/ - $FileInfo: mktable.php - Last Update: 7/21/2009 SVN 276 - Author: cooldude2k $ + $FileInfo: mktable.php - Last Update: 8/3/2009 SVN 287 - Author: cooldude2k $ */ $File3Name = basename($_SERVER['SCRIPT_NAME']); if ($File3Name=="mktable.php"||$File3Name=="/mktable.php") { @@ -39,8 +39,6 @@ $query=query("CREATE TABLE `".$_POST['tableprefix']."tagboard` ( `id` int(15) NO */ $query=query("CREATE TABLE `".$_POST['tableprefix']."topics` ( `id` int(15) NOT NULL auto_increment, `ForumID` int(15) NOT NULL default '0', `CategoryID` int(15) NOT NULL default '0', `OldForumID` int(15) NOT NULL default '0', `UserID` int(15) NOT NULL default '0', `GuestName` varchar(150) NOT NULL default '', `TimeStamp` int(15) NOT NULL default '0', `LastUpdate` int(15) NOT NULL default '0', `TopicName` varchar(150) NOT NULL default '', `Description` text NOT NULL, `NumReply` int(15) NOT NULL default '0', `NumViews` int(15) NOT NULL default '0', `Pinned` int(5) NOT NULL default '0', `Closed` int(5) NOT NULL default '0', PRIMARY KEY (`id`)) TYPE=`MyISAM` DEFAULT CHARSET=`".$SQLCharset."`;", array(null)); mysql_query($query); -$query=query("CREATE TABLE `".$_POST['tableprefix']."sessions` ( `SessionID` varchar(255) NOT NULL default '', `SessID` varchar(255) NOT NULL default '', `LastUpdated` int(15) NOT NULL default '0', `DataValue` text NOT NULL, PRIMARY KEY (`SessionID`)) TYPE=`MyISAM` DEFAULT CHARSET=`".$SQLCharset."`;", array(null)); -mysql_query($query); $query=query("CREATE TABLE `".$_POST['tableprefix']."groups` ( `id` int(15) NOT NULL auto_increment, `Name` varchar(150) NOT NULL default '', `PermissionID` int(15) NOT NULL default '0', `NamePrefix` varchar(150) NOT NULL default '', `NameSuffix` varchar(150) NOT NULL default '', `CanViewBoard` varchar(5) NOT NULL default '', `CanViewOffLine` varchar(5) NOT NULL default '', `CanEditProfile` varchar(5) NOT NULL default '', `CanAddEvents` varchar(5) NOT NULL default '', `CanPM` varchar(5) NOT NULL default '', `CanSearch` varchar(5) NOT NULL default '', `FloodControl` int(5) NOT NULL default '0', `SearchFlood` int(5) NOT NULL default '0', `PromoteTo` int(15) NOT NULL default '0', `PromotePosts` int(15) NOT NULL default '0', `PromoteKarma` int(15) NOT NULL default '0', `HasModCP` varchar(5) NOT NULL default '', `HasAdminCP` varchar(5) NOT NULL default '', `ViewDBInfo` varchar(5) NOT NULL default '', PRIMARY KEY (`id`)) TYPE=`MyISAM` DEFAULT CHARSET=`".$SQLCharset."`;", array(null)); mysql_query($query); $query=query("CREATE TABLE `".$_POST['tableprefix']."permissions` ( `id` int(15) NOT NULL auto_increment, `PermissionID` int(15) NOT NULL default '0', `Name` varchar(150) NOT NULL default '', `ForumID` int(15) NOT NULL default '0', `CanViewForum` varchar(5) NOT NULL default '', `CanMakeTopics` varchar(5) NOT NULL default '', `CanMakeReplys` varchar(5) NOT NULL default '', `CanMakeReplysCT` varchar(5) NOT NULL default '', `CanEditTopics` varchar(5) NOT NULL default '', `CanEditTopicsCT` varchar(5) NOT NULL default '', `CanEditReplys` varchar(5) NOT NULL default '', `CanEditReplysCT` varchar(5) NOT NULL default '', `CanDeleteTopics` varchar(5) NOT NULL default '', `CanDeleteTopicsCT` varchar(5) NOT NULL default '', `CanDeleteReplys` varchar(5) NOT NULL default '', `CanDeleteReplysCT` varchar(5) NOT NULL default '', `CanCloseTopics` varchar(5) NOT NULL default '', `CanPinTopics` varchar(5) NOT NULL default '', `CanDohtml` varchar(5) NOT NULL default '', `CanUseBBags` varchar(5) NOT NULL default '', `CanModForum` varchar(5) NOT NULL default '', PRIMARY KEY (`id`)) TYPE=`MyISAM` DEFAULT CHARSET=`".$SQLCharset."`;", array(null)); @@ -59,4 +57,4 @@ $query = query("INSERT INTO `".$_POST['tableprefix']."catpermissions` VALUES (1, mysql_query($query); $query = query("INSERT INTO `".$_POST['tableprefix']."smileys` VALUES (1, 'smile.gif', 'Happy', ':)', 'smileys/', 'yes', 'no'), (2, 'tongue.gif', 'Tongue', ':P', 'smileys/', 'yes', 'yes'), (3, 'tongue2.gif', 'Tongue', ':tongue:', 'smileys/', 'no', 'yes'), (4, 'sweat.gif', 'Sweat', ':sweat:', 'smileys/', 'yes', 'yes'), (5, 'sweat.gif', 'Sweat', '^_^', 'smileys/', 'no', 'yes'), (6, 'laugh.gif', 'lol', ':lol:', 'smileys/', 'yes', 'yes'), (7, 'cool.gif', 'Cool', 'B)', 'smileys/', 'yes', 'no'), (8, 'sleep.gif', 'Sleep', '-_-', 'smileys/', 'yes', 'no'), (9, 'sad.gif', 'Sad', ':(', 'smileys/', 'yes', 'no'), (10, 'angry.gif', 'Angry', ':angry:', 'smileys/', 'yes', 'yes'), (11, 'huh.gif', 'huh', ':huh:', 'smileys/', 'yes', 'yes'), (12, 'ohmy.gif', 'ohmy', ':o', 'smileys/', 'yes', 'yes'), (13, 'hmm.gif', 'hmm', ':unsure:', 'smileys/', 'yes', 'yes'), (14, 'mad.gif', 'Mad', ':mad:', 'smileys/', 'yes', 'yes'), (15, 'wub.gif', 'Wub', ':wub:', 'smileys/', 'yes', 'yes'), (16, 'x.gif', 'X', ':x:', 'smileys/', 'yes', 'yes');", array(null)); mysql_query($query); -?> \ No newline at end of file +?> -- 2.11.0