OSDN Git Service

Added MySQL sessions with session_set_save_handler().
authorKazuki Przyborowski <kazuki.przyborowski@gmail.com>
Mon, 3 Aug 2009 13:22:06 +0000 (13:22 +0000)
committerKazuki Przyborowski <kazuki.przyborowski@gmail.com>
Mon, 3 Aug 2009 13:22:06 +0000 (13:22 +0000)
git-svn-id: svn://svn.code.sf.net/p/intdb/svn/trunk@287 2b68903e-0b30-0410-9a39-a2e4f3c5be39

inc/endpage.php
inc/versioninfo.php
mysql.php
setup/mkconfig.php
setup/mktable.php

index 06042f7..6e7a9e2 100644 (file)
@@ -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."<br />\nFiles included: ".count_included_files()." ".$ThemeSet['LineDivider']." Execution Time: ".execution_time($starttime).$ThemeSet['LineDivider']."<a href=\"http://validator.w3.org/check/referer?verbose=1\" title=\"Validate HTML\" onclick=\"window.open(this.href);return false;\">HTML</a>".$ThemeSet['LineDivider']."<a href=\"http://jigsaw.w3.org/css-validator/check/referer?profile=css3\" title=\"Validate CSS\" onclick=\"window.open(this.href);return false;\">CSS</a>"; }
        $endpagevar=$endpagevar."</div>\n";
 echo $endpagevar;
+session_write_close();
 //@mysql_close();
-?>
\ No newline at end of file
+?>
index 5042342..ae869ba 100644 (file)
@@ -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);
index 303b834..9118aa1 100644 (file)
--- 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(); }
index 86bfb88..237e623 100644 (file)
@@ -84,6 +84,8 @@ $mydbtest = @ConnectMysql($_POST['DatabaseHost'],$_POST['DatabaseUserName'],$_PO
 if($mydbtest!==true) { $Error="Yes";
 echo "<br />".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; }
 <?php } ?><br /><br />
 </td>
 </tr>
-<?php } ?>
\ No newline at end of file
+<?php } ?>
index df66836..a5f16d5 100644 (file)
@@ -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
+?>