D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
blackhat.pw
:
/
homepages
/
oneclick
/
MediaWiki
/
1.22.3
/
2
/
scripts
/
Filename :
db-prefix.php
back
Copy
<?php function aps_get_prefix($db_main_prefix_aps_default='') { global $argv, $psa_modify_hash, $db_modify_hash; $root_dir = $psa_modify_hash['@@ROOT_DIR@@']; $db_main_prefix_aps = $db_modify_hash['@@DB_MAIN_PREFIX@@']; if($argv[1] == "install") { if($db_main_prefix_aps == '' || $db_main_prefix_aps == $db_main_prefix_aps_default){ $db_main_prefix_aps = aps_get_random_prefix(); } } else{ $db_main_prefix_aps = aps_get_table_prefix($root_dir, $db_main_prefix_aps); if($argv[1] == "upgrade") { if(!($argv[2] && $argv[3])){ return ''; } if($db_main_prefix_aps == $db_main_prefix_aps_default && $db_main_prefix_aps_default!=''){ $db_main_prefix_aps = aps_get_random_prefix(); aps_change_table_prefix($db_main_prefix_aps_default, $db_main_prefix_aps); aps_set_table_prefix($db_main_prefix_aps); } } } return $db_main_prefix_aps; } function aps_get_random_prefix($length = 8) { $salt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $len = strlen($salt); $result = ''; for ($i = 0; $i < $length; $i ++) { $result .= $salt[mt_rand(0, $len -1)]; } return $result."_"; } function aps_change_table_prefix($old_db_prefix, $new_db_prefix) { //Change database table prefix $db_id = "main"; mysql_db_connect(get_db_address($db_id),get_db_login($db_id),get_db_password($db_id),get_db_name($db_id)); $sql_tables="SHOW TABLES LIKE '".$old_db_prefix."%';"; $result_tables = mysql_query($sql_tables); while ($row = mysql_fetch_row($result_tables)) { $old_table_name = $row[0]; $new_table_name = preg_replace('/'.$old_db_prefix.'/', $new_db_prefix, $old_table_name, 1); $sql_tables="RENAME TABLE ".$old_table_name." TO ".$new_table_name.";"; $result = mysql_query($sql_tables); } mysql_free_result($result_tables); } /********************************/ /* Exclusive for each APS */ /********************************/ function aps_get_table_prefix($root_dir, $db_main_prefix_aps) { $db_main_prefix=$db_main_prefix_aps; $config_content = read_file($root_dir.'/LocalSettings.php'); if (preg_match('/wgDBprefix.*=.*"(.*)"/', $config_content, $matches)) { $db_main_prefix= $matches[1]; } return $db_main_prefix; } function aps_set_table_prefix($db_main_prefix) { global $db_modify_hash; $db_modify_hash['@@DB_MAIN_PREFIX@@']=$db_main_prefix; $config_files = array( '/' => array(array('settings.php.in', 'engine/settings.php'))); foreach($config_files as $web_id => $arr2) { foreach($arr2 as $arr){ $template_file = $arr[0]; $dest_path = get_web_dir($web_id).'/'.$arr[1]; modify_file($template_file, $dest_path, $db_modify_hash); } } } ?>