3 This program is free software; you can redistribute it and/or modify
\r
4 it under the terms of the Revised BSD License.
\r
6 This program is distributed in the hope that it will be useful,
\r
7 but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
8 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
9 Revised BSD License for more details.
\r
11 Copyright 2004-2007 Cool Dude 2k - http://intdb.sourceforge.net/
\r
12 Copyright 2004-2007 Game Maker 2k - http://upload.idb.s1.jcink.com/
\r
14 $FileInfo: functions.php - Last Update: 05/26/2007 SVN 15 - Author: cooldude2k $
\r
16 $File3Name = basename($_SERVER['SCRIPT_NAME']);
\r
17 if ($File3Name=="functions.php"||$File3Name=="/functions.php") {
\r
18 require('index.php');
\r
20 function CheckFile($FileName) {
\r
21 $File3Name = basename($_SERVER['SCRIPT_NAME']);
\r
22 if ($File3Name==$FileName||$File3Name=="/".$FileName) {
\r
23 require('index.php');
\r
26 function CheckFiles($FileName) {
\r
27 $File3Name = basename($_SERVER['SCRIPT_NAME']);
\r
28 if ($File3Name==$FileName||$File3Name=="/".$FileName) {
\r
30 CheckFile("functions.php");
\r
31 require($SettDir['misc']."compression.php");
\r
32 if ($_GET['act']=="DeleteSession") {
\r
33 @session_destroy(); }
\r
34 if ($_GET['act']=="ResetSession") {
\r
36 if ($_GET['act']=="NewSessionID") {
\r
37 @session_regenerate_id(); }
\r
38 if ($_GET['act']=="PHPInfo") {
\r
39 @phpinfo(); exit(); }
\r
40 if ($_GET['act']=="phpinfo") {
\r
41 @phpinfo(); exit(); }
\r
42 if ($_GET['act']=="PHPCredits") {
\r
43 @phpcredits(); exit(); }
\r
44 if ($_GET['act']=="phpcredits") {
\r
45 @phpcredits(); exit(); }
\r
46 function ConnectMysql($sqlhost,$sqluser,$sqlpass,$sqldb) {
\r
47 $StatSQL = @mysql_connect($sqlhost,$sqluser,$sqlpass);
\r
48 $StatBase = @mysql_select_db($sqldb);
\r
49 if (!$StatSQL) { return false; }
\r
50 if (!$StatBase) { return false; }
\r
52 $Names['RS'] = "Renee Sabonis";
\r
53 define("_renee_", $Names['RS']);
\r
54 function change_title($new_title,$use_gzip="off",$gzip_type="gzip") {
\r
56 if($gzip_type!="gzip") { if($gzip_type!="deflate") { $gzip_type = "gzip"; } }
\r
57 $output = @ob_get_clean();
\r
58 $output = preg_replace("/<title>(.*?)<\/title>/i", "<title>".$new_title."</title>", $output);
\r
59 /* Change Some PHP Settings Fix the &PHPSESSID to &PHPSESSID */
\r
60 $SessName = @session_name();
\r
61 $output = preg_replace("/&PHPSESSID/", "&PHPSESSID", $output);
\r
62 $qstrcode = htmlentities($Settings['qstr']);
\r
63 $output = str_replace($Settings['qstr'].$SessName, $qstrcode.$SessName, $output);
\r
64 if($use_gzip!="on") {
\r
66 if($use_gzip=="on") {
\r
67 if($gzip_type=="gzip") {
\r
68 $goutput = gzencode($output); }
\r
69 if($gzip_type=="deflate") {
\r
70 $goutput = gzcompress($output); }
\r
72 function fix_amp($use_gzip="off",$gzip_type="gzip") {
\r
74 if($gzip_type!="gzip") { if($gzip_type!="deflate") { $gzip_type = "gzip"; } }
\r
75 $output = @ob_get_clean();
\r
76 /* Change Some PHP Settings Fix the &PHPSESSID to &PHPSESSID */
\r
77 $SessName = @session_name();
\r
78 $output = preg_replace("/&PHPSESSID/", "&PHPSESSID", $output);
\r
79 $qstrcode = htmlentities($Settings['qstr']);
\r
80 $output = str_replace($Settings['qstr'].$SessName, $qstrcode.$SessName, $output);
\r
81 if($use_gzip!="on") {
\r
83 if($use_gzip=="on") {
\r
84 if($gzip_type=="gzip") {
\r
85 $goutput = gzencode($output); }
\r
86 if($gzip_type=="deflate") {
\r
87 $goutput = gzcompress($output); }
\r
89 function gzip_page($use_gzip="off",$gzip_type="gzip") {
\r
91 if($gzip_type!="gzip") { if($gzip_type!="deflate") { $gzip_type = "gzip"; } }
\r
92 $output = @ob_get_clean();
\r
93 $Names['RJ'] = "René Johnson";
\r
94 define("_rene_", $Names['RJ']);
\r
95 if($use_gzip!="on") {
\r
97 if($use_gzip=="on") {
\r
98 if($gzip_type=="gzip") {
\r
99 $goutput = gzencode($output); }
\r
100 if($gzip_type=="deflate") {
\r
101 $goutput = gzcompress($output); }
\r
103 $foo="bar"; $$foo="foo";
\r
104 // SafeSQL Lite Source Code by Cool Dude 2k
\r
105 function query($query_string,$query_vars) {
\r
106 $query_array = array(array("%i","%I","%F","%S"),array("%d","%d","%f","%s"));
\r
107 $query_string = str_replace($query_array[0], $query_array[1], $query_string);
\r
108 if (get_magic_quotes_gpc()) {
\r
109 $query_vars = array_map("stripslashes", $query_vars); }
\r
110 $query_vars = array_map("mysql_real_escape_string", $query_vars);
\r
111 $query_val = $query_vars;
\r
112 $query_num = count($query_val);
\r
114 while ($query_i < $query_num) {
\r
115 $query_is = $query_i+1;
\r
116 $query_val[$query_is] = $query_vars[$query_i];
\r
118 $query_val[0] = $query_string;
\r
119 return call_user_func_array("sprintf",$query_val); }
\r
120 function killbadvars($varname) {
\r
121 $badphp1 = array('$'); $badphp2 = array(null);
\r
122 $varname = str_replace($badphp1, $badphp2, $varname);
\r
123 $varname = preg_replace("/(_SERVER|_ENV|_COOKIE|_SESSION)/i", null, $varname);
\r
124 $varname = preg_replace("/(_GET|_POST|_FILES|_REQUEST|GLOBALS)/i", null, $varname);
\r
125 $varname = preg_replace("/(HTTP_SERVER_VARS|HTTP_ENV_VARS)/i", null, $varname);
\r
126 $varname = preg_replace("/(HTTP_COOKIE_VARS|HTTP_SESSION_VARS)/i", null, $varname);
\r
127 $varname = preg_replace("/(HTTP_GET_VARS|HTTP_POST_VARS|HTTP_POST_FILES)/i", null, $varname);
\r
129 function text2icons($Text,$sqlt) {
\r
131 $reneequery="SELECT * FROM ".$sqlt."smileys";
\r
132 $reneeresult=mysql_query($reneequery);
\r
133 $reneenum=mysql_num_rows($reneeresult);
\r
135 while ($renees < $reneenum) {
\r
136 $FileName=mysql_result($reneeresult,$renees,"FileName");
\r
137 $SmileName=mysql_result($reneeresult,$renees,"SmileName");
\r
138 $SmileText=mysql_result($reneeresult,$renees,"SmileText");
\r
139 $SmileDirectory=mysql_result($reneeresult,$renees,"Directory");
\r
140 $ShowSmile=mysql_result($reneeresult,$renees,"Show");
\r
141 $ReplaceType=mysql_result($reneeresult,$renees,"ReplaceCI");
\r
142 if($ReplaceType=="on") { $ReplaceType = "yes"; }
\r
143 if($ReplaceType=="off") { $ReplaceType = "no"; }
\r
144 if($ReplaceType!="yes"||$ReplaceType!="no") { $ReplaceType = "no"; }
\r
145 $Smile1 = $SmileText;
\r
146 $Smile2 = '<img src="'.$SmileDirectory.''.$FileName.'" style="vertical-align: middle; border: 0px;" title="'.$SmileName.'" alt="'.$SmileName.'" />';
\r
147 if($ReplaceType=="no") {
\r
148 $Text = str_replace($Smile1, $Smile2, $Text); }
\r
149 if($ReplaceType=="yes") {
\r
150 $Smile1 = preg_quote($SmileText,"/");
\r
151 $Text = preg_replace("/".$Smile1."/i",$Smile2,$Text); }
\r
152 ++$renees; } return $Text; }
\r
153 function remove_spaces($Text) {
\r
154 $Text = preg_replace("/(^\t+|\t+$)/","",$Text);
\r
155 $Text = preg_replace("/(^\n+|\n+$)/","",$Text);
\r
156 $Text = preg_replace("/(^\r+|\r+$)/","",$Text);
\r
157 $Text = preg_replace("/(\r|\n|\t)+/"," ",$Text);
\r
158 $Text = preg_replace("/\s\s+/"," ",$Text);
\r
159 $Text = preg_replace("/(^\s+|\s+$)/","",$Text);
\r
161 function fixbamps($text) {
\r
162 $fixamps1 = array("&copy;","&reg;","&trade;","&quot;","&amp;","&lt;","&gt;","&(a|e|i|o|u|y)acute;","&(a|e|i|o|u)grave;","&(a|e|i|o|u)circ;","&(a|e|i|o|u|y)uml;","&(a|o|n)tilde;","&aring;","&aelig;","&ccedil;","&eth;","&oslash;","&szlig;","&thorn;");
\r
163 $fixamps2 = array("©","®","™",""","&","<",">","&\\1acute;","&\\1grave;","&\\1circ;","&\\1uml;","&\\1tilde;","å","æ","ç","ð","ø","ß","þ");
\r
164 $ampnum = count($fixamps1); $ampi=0;
\r
165 while ($ampi < $ampnum) {
\r
166 $text = preg_replace("/".$fixamps1[$ampi]."/i", $fixamps2[$ampi], $text);
\r
168 $text = preg_replace("/&#(x[a-f0-9]+|[0-9]+);/i", "&#$1;", $text);
\r
170 function getnextid($tablepre,$table) {
\r
171 $getnextidq = query("SHOW TABLE STATUS LIKE '".$tablepre.$table."'", array());
\r
172 $getnextidr = mysql_query($getnextidq);
\r
173 $getnextid = mysql_fetch_assoc($getnextidr);
\r
174 return $getnextid['Auto_increment'];
\r
175 @mysql_free_result($getnextidr); }
\r
176 $Names['RSA'] = "Rachel Sabonis";
\r
177 define("_rachel_", $Names['RSA']);
\r
178 function redirects($type,$url,$time=0) {
\r
179 if($type!="location"&&
\r
180 $type!="refresh") {
\r
181 $type=="location"; }
\r
182 if($type=="refresh") {
\r
183 header("Refresh: ".$time."; URL=".$url); }
\r
184 if($type=="location") {
\r
185 header("Location: ".$url); }
\r
187 function xml_doc_start($ver,$encode,$retval=false) {
\r
188 if($retval!=false&&$retval!=true) { $retval=false; }
\r
189 if($retval==false) {
\r
190 echo '<?xml version="'.$ver.'" encoding="'.$encode.'"?>'."\n"; }
\r
191 if($retval==true) {
\r
192 return '<?xml version="'.$ver.'" encoding="'.$encode.'"?>'."\n"; } }
\r
193 function GMTimeChange($format,$timestamp,$offset,$minoffset=null,$dst=null) {
\r
194 $TCHour = date("H",$timestamp);
\r
195 $TCMinute = date("i",$timestamp);
\r
196 $TCSecond = date("s",$timestamp);
\r
197 $TCMonth = date("n",$timestamp);
\r
198 $TCDay = date("d",$timestamp);
\r
199 $TCYear = date("Y",$timestamp);
\r
200 unset($dstake); $dstake = null;
\r
201 if(!is_numeric($offset)) { $offset = 0; }
\r
202 if(!is_numeric($minoffset)) { $minoffset = 0; }
\r
203 if($dst!="on"&&$dst!="off") { $dst = "off"; }
\r
205 if($dstake!="done") {
\r
206 if($offset>=0) { $dstake = "done";
\r
207 $offset = $offset-1; } }
\r
208 if($dstake!="done") {
\r
209 if($offset<0) { $dstake = "done";
\r
210 $offset = $offset+1; } } }
\r
211 $TCHour = $TCHour + $offset;
\r
212 $TCMinute = $TCMinute + $minoffset;
\r
213 return date($format,mktime($TCHour,$TCMinute,$TCSecond,$TCMonth,$TCDay,$TCYear)); }
\r
214 function TimeChange($format,$timestamp,$offset,$minoffset=null,$dst=null) {
\r
215 $TCHour = date("H",$timestamp);
\r
216 $TCMinute = date("i",$timestamp);
\r
217 $TCSecond = date("s",$timestamp);
\r
218 $TCMonth = date("n",$timestamp);
\r
219 $TCDay = date("d",$timestamp);
\r
220 $TCYear = date("Y",$timestamp);
\r
221 unset($dstake); $dstake = null;
\r
222 if(!is_numeric($offset)) { $offset = 0; }
\r
223 if(!is_numeric($minoffset)) { $minoffset = 0; }
\r
224 if($dst!="on"&&$dst!="off") { $dst = "off"; }
\r
226 if($dstake!="done") {
\r
227 if($offset>=0) { $dstake = "done";
\r
228 $offset = $offset-1; } }
\r
229 if($dstake!="done") {
\r
230 if($offset<0) { $dstake = "done";
\r
231 $offset = $offset+1; } } }
\r
232 $TCHour = $TCHour + $offset;
\r
233 $TCMinute = $TCMinute + $minoffset;
\r
234 return date($format,mktime($TCHour,$TCMinute,$TCSecond,$TCMonth,$TCDay,$TCYear)); }
\r
235 function GMTimeStamp() {
\r
236 $GMTHour = gmdate("H");
\r
237 $GMTMinute = gmdate("i");
\r
238 $GMTSecond = gmdate("s");
\r
239 $GMTMonth = gmdate("n");
\r
240 $GMTDay = gmdate("d");
\r
241 $GMTYear = gmdate("Y");
\r
242 return mktime($GMTHour,$GMTMinute,$GMTSecond,$GMTMonth,$GMTDay,$GMTYear); }
\r
243 function GMTimeStampS() { return time() - date('Z', time()); }
\r
244 function GMTimeGet($format,$offset,$minoffset=null,$dst=null) {
\r
245 return GMTimeChange($format,GMTimeStamp(),$offset,$minoffset,$dst); }
\r
246 function GMTimeGetS($format,$offset,$minoffset=null,$dst=null) {
\r
247 unset($dstake); $dstake = null;
\r
248 if(!is_numeric($offset)) { $offset = 0; }
\r
249 if(!is_numeric($minoffset)) { $minoffset = 0; }
\r
250 if($dst!="on"&&$dst!="off") { $dst = "off"; }
\r
252 if($dstake!="done") {
\r
253 if($offset>=0) { $dstake = "done";
\r
254 $offset = $offset-1; } }
\r
255 if($dstake!="done") {
\r
256 if($offset<0) { $dstake = "done";
\r
257 $offset = $offset+1; } } }
\r
258 return date($format,mktime(gmdate('h')+$offset,gmdate('i')+$minoffset,gmdate('s'),gmdate('n'),gmdate('j'),gmdate('Y'))); }
\r
259 function GetSeverZone() {
\r
260 $TestHour1 = date("H");
\r
261 @putenv("OTZ=".@getenv("TZ"));
\r
263 $TestHour2 = date("H");
\r
264 @putenv("TZ=".@getenv("OTZ"));
\r
265 $TestHour3 = $TestHour1-$TestHour2;
\r
266 return $TestHour3; }
\r
267 function SeverOffSet() {
\r
268 $TestHour1 = date("H");
\r
269 $TestHour2 = gmdate("H");
\r
270 $TestHour3 = $TestHour1-$TestHour2;
\r
271 return $TestHour3; }
\r
272 function SeverOffSetNew() {
\r
273 return gmdate("g",mktime(0,date("Z"))); }
\r
274 function gmtime() { return time() - (int) date('Z'); }
\r
275 function file_get_source($filename,$return = FALSE) {
\r
276 // Acts like highlight_file();
\r
277 $phpsrc = file_get_contents($filename);
\r
278 $phpsrcs = highlight_string($phpsrc,$return);
\r
280 function valid_get_source($filename) {
\r
281 $phpsrcs = file_get_source($filename,TRUE);
\r
282 // Change font tag to span tag for valid xhtml
\r
283 $phpsrcs = preg_replace("/\<font color=\"(.*?)\"\>/i", "<span style=\"color: \\1;\">", $phpsrcs);
\r
284 $phpsrcs = preg_replace("/\<\/font>/i", "</span>", $phpsrcs);
\r
286 function GetUserName($idu,$sqlt) {
\r
287 $gunquery = query("select * from ".$sqlt."members where id=%i", array($idu));
\r
288 $gunresult=mysql_query($gunquery);
\r
289 $gunnum=mysql_num_rows($gunresult);
\r
291 $UsersName=mysql_result($gunresult,$gunnum-1,"Name"); }
\r
292 @mysql_free_result($gunresult);
\r
293 return $UsersName; }
\r
294 function hmac($data,$key,$hash='sha1',$blocksize=64) {
\r
295 if (strlen($key)>$blocksize) {
\r
296 $key=pack('H*',$hash($key)); }
\r
297 $key=str_pad($key, $blocksize, chr(0x00));
\r
298 $ipad=str_repeat(chr(0x36),$blocksize);
\r
299 $opad=str_repeat(chr(0x5c),$blocksize);
\r
300 return $hash(($key^$opad).pack('H*',$hash(($key^$ipad).$data))); }
\r
301 function b64e_hmac($data,$key,$extdata,$hash='sha1',$blocksize=64) {
\r
302 $extdata2 = hexdec($extdata); $key = $key.$extdata2;
\r
303 return base64_encode(hmac($data,$key,$hash,$blocksize).$extdata); }
\r
304 function salt_hmac($size1=4,$size2=6) {
\r
305 $hprand = rand(4,6); $i = 0; $hpass = "";
\r
306 while ($i < $hprand) {
\r
307 $hspsrand = rand(1,2);
\r
308 if($hspsrand!=1&&$hspsrand!=2) { $hspsrand=1; }
\r
309 if($hspsrand==1) { $hpass .= chr(rand(48,57)); }
\r
310 if($hspsrand==2) { $hpass .= chr(rand(65,70)); }
\r
311 ++$i; } return $hpass; }
\r
312 /* is_empty by M at http://us2.php.net/manual/en/function.empty.php#74093 */
\r
313 function is_empty($var) {
\r
314 if (((is_null($var) || rtrim($var) == "") &&
\r
315 $var !== false) || (is_array($var) && empty($var))) {
\r
316 return true; } else {
\r
318 function PassHash2x($Text) {
\r
319 $Text = md5($Text);
\r
320 $Text = sha1($Text);
\r
322 function PassHash2x2($data,$key,$extdata,$blocksize=64) {
\r
323 $extdata2 = hexdec($extdata); $key = $key.$extdata2;
\r
324 $Text = hmac($data,$key,"md5").$extdata;
\r
325 $Text = hmac($Text,$key,"sha1").$extdata;
\r
326 return base64_encode($Text); }
\r
327 function cp($infile,$outfile,$mode="w") {
\r
328 $contents = file_get_contents($infile);
\r
329 $cpfp = fopen($outfile,$mode);
\r
330 fwrite($cpfp, $contents);
\r
333 /* str_ireplace for PHP below ver. 5 updated //
\r
334 // by René Johnson - Cool Dude 2k //
\r
335 // and upaded by René Johnson again */
\r
336 if(!function_exists('str_ireplace')) {
\r
337 function str_ireplace($search,$replace,$subject) {
\r
338 if(!is_array($search)&&is_array($replace)) {
\r
339 $search = array($search); }
\r
340 if(is_array($search)&&!is_array($replace)) {
\r
341 $replace = array($replace); }
\r
342 if(is_array($search)&&is_array($replace)) {
\r
343 $sc=count($search); $rc=count($replace); $sn=0;
\r
344 if($sc!=$rc) { return false; }
\r
345 while ($sc > $sn) {
\r
346 $search[$sn] = preg_quote($search[$sn], "/");
\r
347 $subject = preg_replace("/".$search[$sn]."/i", $replace[$sn], $subject);
\r
349 if(!is_array($search)&&!is_array($replace)) {
\r
350 $search = preg_quote($search, "/");
\r
351 $subject = preg_replace("/".$search."/i", $replace, $subject); }
\r
352 return $subject; } }
\r
353 $foobar="fubar"; $$foobar="foobar";
\r
354 function dump_included_files() { return var_dump(get_included_files()); }
\r
355 function count_included_files() { return count(get_included_files()); }
\r
356 function dump_extensions() { return var_dump(get_loaded_extensions()); }
\r
357 function count_extensions() { return count(get_loaded_extensions()); }
\r