📄 header_php.php
字号:
<?php
/**
* @package Installer
* @access private
* @copyright Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: header_php.php 3824 2006-06-21 17:07:09Z drbyte $
*/
/*
* Database Upgrade script
* 1. Checks to be sure that the configure.php exists and can be read
* 2. Uses info from configure.php to connect to database
* 3. Queries database to determine whether settings unique to each upgrade level exist or not
* 4. Presents a list of upgrade steps to be completed (checkboxes)
* 5. If can connect to database, but cannot find the "configuration" table, only allows option to rename table prefixes
* 6. Requires admin password in order to do upgrade steps
* 7. Cycles through processing each upgrade SQL file in sequence, as selected.
* Won't process upgrades if prerequisites for prior step aren't already validated.
*
* @todo Optimize routine to check for database permissions at the MySQL "user" level.
* Needs: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP
* NEEDS TO WORK RELIABLY FOR BOTH well-configured and poorly-configured hosting configurations
*/
/////////////////////////////////////////////////////////////////////
//this is the latest database-version-level that this script knows how to inspect and upgrade to.
//it is used to determine whether to stay on the upgrade page when done, or continue to the finished page
$latest_version = '1.3.0.2';
///////////////////////////////////
if (!isset($_GET['debug']) && !zen_not_null($_POST['debug'])) define('ZC_UPG_DEBUG',false);
if (!isset($_GET['debug2']) && !zen_not_null($_POST['debug2'])) define('ZC_UPG_DEBUG2',false);
if (!isset($_GET['debug3']) && !zen_not_null($_POST['debug3'])) define('ZC_UPG_DEBUG3',false);
$is_upgrade = true; //that's what this page is all about!
$failed_entries=0;
$zc_install->error = false;
$zc_install->fatal_error = false;
$zc_install->error_list = array();
$configure_files_array = array('../includes/configure.php','../admin/includes/configure.php');
$database_tablenames_array=array('../includes/database_tables.php', '../includes/extra_datafiles/music_type_database_names.php');
define('DIR_WS_INCLUDES', '../includes/');
$zc_install->test_store_configure(ERROR_TEXT_STORE_CONFIGURE,ERROR_CODE_STORE_CONFIGURE);
if (ZC_UPG_DEBUG==true && $zc_install->fatal_error) echo 'FATAL ERROR-CONFIGURE FILE';
if (!$zc_install->fatal_error) {
if (ZC_UPG_DEBUG==true) echo 'configure.php file exists<br />';
require(DIR_WS_INCLUDES . 'configure.php');
require(DIR_WS_INCLUDES . 'classes/db/' . DB_TYPE . '/query_factory.php');
//open database connection to run queries against it
$db_test = new queryFactory;
$db_test->Connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE) or die("Unable to connect to database");
//check to see if a database_table_prefix has been defined. If not, set it to blank.
if (!defined('DB_PREFIX') || DB_PREFIX == 'DB_PREFIX' || "'".DB_PREFIX."'" == 'DB_PREFIX') {
define('DB_PREFIX','');
}
// Now check the database for what version it's at, if found
require('includes/classes/class.installer_version_manager.php');
$dbinfo = new versionManager;
$privs_array = explode('|||',zen_check_database_privs('','',true));
$db_priv_ok = $privs_array[0];
$zdb_privs_list = $privs_array[1];
$privs_found_text='';
if (ZC_UPG_DEBUG==true) echo 'privs_list_to_parse='.$db_priv_ok.'|||'.$zdb_privs_list;
foreach(array('ALL PRIVILEGES','SELECT','INSERT','UPDATE','DELETE','CREATE','ALTER','INDEX','DROP') as $value) {
if (in_array($value,explode(', ',$zdb_privs_list))) {
$privs_found_text .= $value .', ';
}
}
$zdb_privs=str_replace(', ',' ',$privs_found_text.' ');
if (!zen_not_null($zdb_privs)) $zdb_privs=$zdb_privs_list;
if ($zdb_privs_list == 'Not Checked') $zdb_privs = $zdb_privs_list;
// Finished querying database for configuration info
$db_test->Close();
// *** NOW DETERMINE REQUIRED UPDATES BASED ON TEST RESULTS
//display options based on what was found -- THESE SHOULD BE PROCESSED IN REVERSE ORDER, NEWEST VERSION FIRST... !
//that way only the "earliest-required" upgrade is suggested first.
if (!$dbinfo->version1302) {
$sniffer = ' upgrade v1.3.0.1 to v1.3.0.2';
$needs_v1_3_0_2=true;
}
if (!$dbinfo->version1301) {
$sniffer = ' upgrade v1.3.0 to v1.3.0.1';
$needs_v1_3_0_1=true;
}
if (!$dbinfo->version130) {
$sniffer = ' upgrade v1.2.7 to v1.3.0';
$needs_v1_3_0=true;
}
if (!$dbinfo->version127) {
$sniffer = ' upgrade v1.2.6 to v1.2.7';
$needs_v1_2_7=true;
}
if (!$dbinfo->version126) {
$sniffer = ' upgrade v1.2.5 to v1.2.6';
$needs_v1_2_6=true;
}
if (!$dbinfo->version125) {
$sniffer = ' upgrade v1.2.4 to v1.2.5';
$needs_v1_2_5=true;
}
if (!$dbinfo->version124) {
$sniffer = ' upgrade v1.2.3 to v1.2.4';
$needs_v1_2_4=true;
}
if (!$dbinfo->version123) {
$sniffer = ' upgrade v1.2.2 to v1.2.3';
$needs_v1_2_3=true;
}
if (!$dbinfo->version122) {
$sniffer = ' upgrade v1.2.1 to v1.2.2';
$needs_v1_2_2=true;
}
if (!$dbinfo->version121) {
$sniffer = ' upgrade v1.2.0 to v1.2.1';
$needs_v1_2_1=true;
}
if (!$dbinfo->version120) {
$sniffer = ' upgrade v1.1.4 to v1.2.0';
$needs_v1_2_0=true;
}
if (!$dbinfo->version1141) {
$sniffer = ' upgrade v1.1.4 to v1.1.4_patch1';
$needs_v1_1_4_patch1=true;
}
if (!$dbinfo->version114) {
$sniffer = ' upgrade v1.1.2 or v1.1.3 to v1.1.4';
$needs_v1_1_4=true;
}
if (!$dbinfo->version112) {
$sniffer = ' upgrade v1.1.1 to v1.1.2';
$needs_v1_1_2=true;
}
if (!$dbinfo->version111) {
$sniffer = ' upgrade v1.1.0 to v1.1.1';
$needs_v1_1_1=true;
}
if (!$dbinfo->version110) {
$sniffer = ' upgrade v1.04 to v.1.1.1';
$needs_v1_1_0=true;
// $needs_v1_1_1=false; // exclude the 1.1.0-to-1.1.1 update since it's included in this step if selected
}
if (!isset($sniffer) && empty($sniffer)) {
$sniffer = ' *** No upgrade required ***';
$sniffer_version = "";
}
} // end if zc_install_error == false ....... and database schema checks
if (ZC_UPG_DEBUG2==true) {
echo '<br>110='.$dbinfo->version110;
echo '<br>111='.$dbinfo->version111;
echo '<br>112='.$dbinfo->version112;
echo '<br>114='.$dbinfo->version114;
echo '<br>1_1_4_patch1='.$dbinfo->version1141;
echo '<br>120='.$dbinfo->version120;
echo '<br>121='.$dbinfo->version121;
echo '<br>122='.$dbinfo->version122;
echo '<br>123='.$dbinfo->version123;
echo '<br>124='.$dbinfo->version124;
echo '<br>125='.$dbinfo->version125;
echo '<br>126='.$dbinfo->version126;
echo '<br>127='.$dbinfo->version127;
echo '<br>130='.$dbinfo->version130;
echo '<br>1301='.$dbinfo->version1301;
echo '<br>1302='.$dbinfo->version1302;
echo '<br>';
}
// IF FORM WAS SUBMITTED, CHECK SELECTIONS AND PERFORM THEM
if (isset($_POST['submit'])) {
$sniffer = '';
$sniffer_version = '';
if (is_array($_POST['version'])) {
if (ZC_UPG_DEBUG2==true) foreach($_POST['version'] as $value) { echo 'Selected: ' . $value.'<br />';}
reset($_POST['version']);
while (list(, $value) = each($_POST['version'])) {
$sniffer_file = '';
switch ($value) {
case '1.0.4': // upgrading from v1.0.4 to 1.1.1
if ($dbinfo->version111) continue; // if prerequisite not completed, or already done, skip
$sniffer_file = '_upgrade_zencart_104_to_111.sql';
if (ZC_UPG_DEBUG2==true) echo '<br>'.$sniffer_file.'<br>';
$got_v1_1_1 = true;
$db_upgraded_to_version='1.1.1';
break;
case '1.1.0': // upgrading from v1.1.0 to 1.1.1
if (!$dbinfo->version110 || $dbinfo->version111) continue; // if don't have prerequisite, or if already done this step
$sniffer_file = '_upgrade_zencart_110_to_111.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_1_1 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.1.1';
break;
case '1.1.1': // upgrading from v1.1.1 to 1.1.2
if (!$dbinfo->version111 || $dbinfo->version112) continue;
$sniffer_file = '_upgrade_zencart_110_to_112.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_1_2 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.1.2';
break;
case '1.1.2-or-1.1.3': // upgrading from v1.1.2 or v.1.13 TO 1.1.4
if (!$dbinfo->version112 || $dbinfo->version114) continue;
$sniffer_file = '_upgrade_zencart_112_to_114.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_1_4 = true;
$got_v1_1_4_patch1 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.1.4-1';
break;
case '1.1.4': // upgrading from v1.1.4 to 1.1.4 patch1
if (!$dbinfo->version114 || $dbinfo->version1141) continue;
$sniffer_file = '_upgrade_zencart_114_patch1.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_1_4_patch1 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.1.4-1';
break;
case '1.1.4u': // upgrading from v1.1.4 TO v1.2.0 ('u' implies "upgrade", rather than just the patch1)
if (!$dbinfo->version114 || $dbinfo->version120) continue;
$sniffer_file = '_upgrade_zencart_114_to_120.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_2_0 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.2.0';
break;
case '1.2.0': // upgrading from v1.2.0 TO v1.2.1
if (!$dbinfo->version120 || $dbinfo->version121) continue; // if prerequisite not completed, or already done, skip
$sniffer_file = '_upgrade_zencart_120_to_121.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_2_1 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.2.1';
break;
case '1.2.1': // upgrading from v1.2.1 TO v1.2.2
// if (!$dbinfo->version121 || $dbinfo->version122) continue; // if prerequisite not completed, or already done, skip
$sniffer_file = '_upgrade_zencart_121_to_122.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_2_2 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.2.2';
break;
case '1.2.2': // upgrading from v1.2.2 TO v1.2.3
// if (!$dbinfo->version122 || $dbinfo->version123) continue; // if prerequisite not completed, or already done, skip
$sniffer_file = '_upgrade_zencart_122_to_123.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_2_3 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.2.3';
break;
case '1.2.3': // upgrading from v1.2.3 TO v1.2.4
// if (!$dbinfo->version123 || $dbinfo->version124) continue; // if prerequisite not completed, or already done, skip
$sniffer_file = '_upgrade_zencart_123_to_124.sql';
if (ZC_UPG_DEBUG2==true) echo $sniffer_file.'<br>';
$got_v1_2_4 = true; //after processing this step, this will be the new version-level
$db_upgraded_to_version='1.2.4';
break;
case '1.2.4': // upgrading from v1.2.4 TO v1.2.5
// if (!$dbinfo->version124 || $dbinfo->version125) continue; // if prerequisite not completed, or already done, skip
$sniffer_file = '_upgrade_zencart_124_to_125.sql';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -