<?php /* LabStoRe Version: 1.6.3 Date: 6 September 2014 Copyright: Santosh Patnaik, MD, PhD License: GPL 3+ URL: www.bioinformatics.org/phplabware */ session_start(); ob_start(); include(realpath(dirname(__FILE__) . '/config.php')); // Taking care of magic quotes gpc if(get_magic_quotes_gpc()) { // Recursively apply stripslashes() to all data $_GET = strip_slashes($_GET); $_POST = strip_slashes($_POST); $_COOKIE = strip_slashes($_COOKIE); $_REQUEST = strip_slashes($_REQUEST); ini_set('magic_quotes_gpc', 0); } if(get_magic_quotes_runtime()) { set_magic_quotes_runtime(0); } // Magic quotes issues function add_slashes($value, $param) { if(is_array($value)) { foreach($value as $index=>$val) { $value[$index] = add_slashes($val); } return $value; } else { $value = str_replace(array("\\", "\0", "\n", "\r", "\x1a", "'", '"'), array("\\\\", "\\0", "\\n", "\\r", "\Z", "\'", '\"'), $value); if(empty($param)) { return "'" . $value . "'"; } elseif($param == 2) { return $value; } else { return str_replace('`', '\`', $value); } } } function strip_slashes($value) { if(is_array($value)) { foreach($value as $index=>$val) { $value[$index] = strip_slashes($val); } return $value; } else { return stripslashes($value); } } // Database functions function connect_db($server, $user, $password) { global $debug_mode; if($debug_mode == 1) { $conn = database_connect($server, $user, $password) or die('<p><b>[06] Error:</b> during MySQL database connection.<br />MySQL server said: ' . htmlspecialchars(database_error($conn)) . '</p>'); } else { $conn = database_connect($server, $user, $password) or die('<p><b>[06] Error:</b> during MySQL database connection. Most likely the settings in config.php file are incorrect, or the MySQL server is down. For PHP/MySQL debugging, turn on the debug_mode option in the config.php file.</p>'); } return $conn; } function choose_db($dbase, $conn) { global $debug_mode; if($debug_mode == 1) { database_select_db($dbase, $conn) or die('<p><b>[07] Error:</b> during MySQL database selection.<br />MySQL server said: ' . htmlspecialchars(database_error($conn)) . '</p>'); } else { database_select_db($dbase, $conn) or die('<p><b>[07] Error:</b> during MySQL database selection. Most likely the database name set in config.php file is incorrect, or there is no such database is down. For PHP/MySQL debugging, turn on the debug_mode option in the config.php file.</p>'); } database_query("SET NAMES 'utf8'", $conn); } function execute_db($sql, $conn, $file = 'unknown') { global $debug_mode; if($debug_mode == 1) { $results = database_query($sql, $conn) or die('<p><b>[08] Error:</b> during MySQL query execution (called from file <i>' . $file . '</i>). The query statement was:<br /><br />' . htmlspecialchars($sql) . '<br /><br />The MySQL server responded: ' . htmlspecialchars(database_error($conn)) . '</p>'); } else { $results = database_query($sql, $conn) or die('<p><b>[08] Error:</b> during MySQL query execution. Perhaps there is something wrong with the PHP code. For PHP/MySQL debugging, turn on the debug_mode option in the config.php file.</p>'); } return $results; } // For mysql_ vs. mysqli_ use if(!function_exists('mysqli_connect')){ function database_affected_rows($x){return mysql_affected_rows($x);} function database_connect($x, $y, $z){return mysql_connect($x, $y, $z);} function database_error($x){return mysql_error($x);} function database_fetch_array($x){return mysql_fetch_array($x);} function database_fetch_field($x){return mysql_fetch_field($x);} function database_fetch_row($x){return mysql_fetch_row($x);} function database_field_flags($x, $y){return mysql_field_flags($x, $y);} function database_field_name($x, $y){return mysql_field_name($x, $y);} function database_insert_id($x){return mysql_insert_id($x);} function database_list_fields($x, $y, $z){$r = array(); $b = mysql_query('SHOW COLUMNS FROM `'. $y. '`', $z); while($a = mysql_fetch_row($b)){$r[] = $a;}; return $r;} function database_list_tables($x, $y){$r = array(); $z = mysql_query('SHOW TABLES', $y); while($a = mysql_fetch_row($z)){$r[] = $a[0];}; return $r;} function database_num_fields($x){return mysql_num_fields($x);} function database_num_rows($x){return mysql_num_rows($x);} function database_query($x){return mysql_query($x);} function database_select_db($x, $y){return mysql_select_db($x, $y);} } else{ function database_affected_rows($x){return mysqli_affected_rows($x);} function database_connect($x, $y, $z){return mysqli_connect($x, $y, $z);} function database_error($x){return mysqli_error($x);} function database_fetch_array($x){return mysqli_fetch_array($x);} function database_fetch_field($x){return mysqli_fetch_field($x);} function database_fetch_row($x){return mysqli_fetch_row($x);} function database_field_name($x, $y){return mysqli_fetch_field_direct($x, $y)->name;} function database_insert_id($x){return mysqli_insert_id($x);} function database_list_fields($x, $y, $z){$r = array(); $b = mysqli_query($z, 'SHOW COLUMNS FROM `'. $y. '`'); while($a = $b->fetch_row()){$r[] = $a;}; return $r;} function database_list_tables($x, $y){$r = array(); $z = mysqli_query($y, 'SHOW TABLES'); while($a = $z->fetch_row()){$r[] = $a[0];}; return $r;} function database_num_fields($x){return mysqli_num_fields($x);} function database_num_rows($x){return mysqli_num_rows($x);} function database_query($x, $y){return mysqli_query($y, $x);} function database_select_db($x, $y){return mysqli_select_db($y, $x);} } $conn = connect_db($host, $user, $pass); $selected = choose_db($db_name, $conn); // Get client's IP address if($all_see_tables == "no" or $all_affect_items == "no") { if(empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { $IP = $_SERVER["REMOTE_ADDR"]; } else { $IP = $_SERVER["HTTP_X_FORWARDED_FOR"]; } $lh = gethostbyaddr($_SERVER['REMOTE_ADDR']); // Test that the address is allowed $test = $IP . "." . $lh; if(in_array($test, $allowed) || in_array($IP, $allowed)) { $client = "allowed"; } else { $client = "not_allowed"; } } // Check_login; will go to login if authentication enabled in config.php include(realpath(dirname(__FILE__) . '/interface_creator/check_login.php'));