📄 index.php
字号:
<?php
// $Id: index.php 1083 2007-10-16 16:42:51Z phppp $
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000 XOOPS.org //
// <http://www.xoops.org/> //
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //
error_reporting (0);
include_once './passwd.php';
if(INSTALL_USER != '' || INSTALL_PASSWD != ''){
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="XOOPS Installer"');
header('HTTP/1.0 401 Unauthorized');
echo 'You can not access this XOOPS installer.';
exit;
} else {
if(INSTALL_USER != '' && $_SERVER['PHP_AUTH_USER'] != INSTALL_USER){
header('HTTP/1.0 401 Unauthorized');
echo 'You can not access this XOOPS installer.';
exit;
}
if(INSTALL_PASSWD != $_SERVER['PHP_AUTH_PW']){
header('HTTP/1.0 401 Unauthorized');
echo 'You can not access this XOOPS installer.';
exit;
}
}
}
include_once './class/textsanitizer.php';
$myts =& TextSanitizer::getInstance();
if ( isset($_POST) ) {
foreach ($_POST as $k=>$v) {
if (!is_array($v)) {
$$k = $myts->stripSlashesGPC($v);
}
}
}
$language = 'schinese';
if ( !empty($_POST['lang']) ) {
$language = $_POST['lang'];
} else {
if (isset($_COOKIE['install_lang'])) {
$language = $_COOKIE['install_lang'];
} elseif(false) { // skip for Chinese version
//$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'ja,en-us;q=0.7,zh-TW;q=0.6';
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$language_array = array('en' => 'english', 'ja' => 'japanese', 'fr' => 'french', 'de' => 'german', 'nl' => 'dutch', 'es' => 'spanish', 'tw' => 'tchinese', 'cn' => 'schinese', 'ro' => 'romanian');
foreach ($accept_langs as $al) {
$al = strtolower($al);
$al_len = strlen($al);
if ($al_len > 2) {
if (preg_match("/([a-z]{2});q=[0-9.]+$/", $al, $al_match)) {
$al = $al_match[1];
} else {
continue;
}
}
if (isset($language_array[$al])) {
$language = $language_array[$al];
break;
}
}
}
}
}
if ( file_exists("./language/".$language."/install.php") ) {
include_once "./language/".$language."/install.php";
} elseif ( file_exists("./language/english/install.php") ) {
include_once "./language/english/install.php";
$language = 'english';
} else {
echo 'no language file.';
exit();
}
setcookie("install_lang", $language);
//include './include/viewerrors.php';
//include './include/functions.php';
define('_OKIMG',"<img src='img/yes.gif' width='6' height='12' border='0' alt='' /> ");
define('_NGIMG',"<img src='img/no.gif' width='6' height='12' border='0' alt='' /> ");
$b_back = '';
$b_reload = '';
$b_next = '';
// options for mainfile.php
$xoopsOption['nocommon'] = true;
define('XOOPS_INSTALL', 1);
if(!empty($_POST['op']))
$op = $_POST['op'];
elseif(!empty($_GET['op']))
$op = $_GET['op'];
else
$op = '';
///// main
switch ($op) {
default:
case "langselect":
$title = _INSTALL_L0;
if (!defined('_INSTALL_L128')) {
define('_INSTALL_L128', 'Choose language to be used for the installation process');
}
$content = "<p>"._INSTALL_L128."</p>"
."<select name='lang'>";
$langarr = getDirList("./language/");
foreach ($langarr as $lang) {
$content .= "<option value='".$lang."'";
if (strtolower($lang) == $language) {
$content .= ' selected="selected"';
}
$content .= ">".( empty($GLOBALS["install_languages"][$lang]) ? $lang : htmlspecialchars($GLOBALS["install_languages"][$lang]) )."</option>";
}
$content .= "</select>";
$b_next = array('start', _INSTALL_L80 );
include 'install_tpl.php';
break;
case "start":
$title = _INSTALL_L0;
$content = "<table width='80%' align='center'><tr><td align='left'>\n";
include './language/'.$language.'/welcome.php';
$content .= "</td></tr></table>\n";
$b_next = array('modcheck', _INSTALL_L81 );
include 'install_tpl.php';
break;
case "modcheck":
$writeok = array("uploads/", "cache/", "templates_c/", "mainfile.php");
$title = _INSTALL_L82;
$content = "<table align='center'><tr><td align='left'>\n";
$error = false;
foreach ($writeok as $wok) {
if (!is_dir("../".$wok)) {
if ( file_exists("../".$wok) ) {
@chmod("../".$wok, 0666);
if (! is_writeable("../".$wok)) {
$content .= _NGIMG.sprintf(_INSTALL_L83, $wok)."<br />";
$error = true;
}else{
$content .= _OKIMG.sprintf(_INSTALL_L84, $wok)."<br />";
}
}
} else {
@chmod("../".$wok, 0777);
if (! is_writeable("../".$wok)) {
$content .= _NGIMG.sprintf(_INSTALL_L85, $wok)."<br />";
$error = true;
}else{
$content .= _OKIMG.sprintf(_INSTALL_L86, $wok)."<br />";
}
}
}
$content .= "</td></tr></table>\n";
if(! $error) {
$content .= "<p>"._INSTALL_L87."</p>";
$b_next = array('dbform', _INSTALL_L89 );
}else{
$content .= "<p>"._INSTALL_L46."</p>";
$b_reload = true;
}
include 'install_tpl.php';
break;
case "dbform":
include_once '../mainfile.php';
include_once 'class/settingmanager.php';
$sm = new setting_manager();
$sm->readConstant();
$content = $sm->editform();
$title = _INSTALL_L90;
$b_next = array('dbconfirm',_INSTALL_L91);
include 'install_tpl.php';
break;
case "dbconfirm":
include_once 'class/settingmanager.php';
$sm = new setting_manager(true);
$content = $sm->checkData();
if (!empty($content)) {
$content .= $sm->editform();
$b_next = array('dbconfirm',_INSTALL_L91);
include 'install_tpl.php';
break;
}
$title = _INSTALL_L53;
$content = $sm->confirmForm();
$b_next = array('dbsave',_INSTALL_L92 );
$b_back = array('', _INSTALL_L93 );
include 'install_tpl.php';
break;
case "dbsave":
include_once "./class/mainfilemanager.php";
$title = _INSTALL_L88;
$mm = new mainfile_manager("../mainfile.php");
$ret = $mm->copyDistFile();
if(! $ret){
$content = _INSTALL_L60;
include 'install_tpl.php';
exit();
}
$mm->setRewrite('XOOPS_ROOT_PATH', trim($myts->stripSlashesGPC($_POST['root_path'])));
$mm->setRewrite('XOOPS_URL', trim($myts->stripSlashesGPC($_POST['xoops_url'])));
$mm->setRewrite('XOOPS_DB_TYPE', trim($myts->stripSlashesGPC($_POST['database'])));
$mm->setRewrite('XOOPS_DB_PREFIX', trim($myts->stripSlashesGPC($_POST['prefix'])));
$mm->setRewrite('XOOPS_DB_HOST', trim($myts->stripSlashesGPC($_POST['dbhost'])));
$mm->setRewrite('XOOPS_DB_USER', trim($myts->stripSlashesGPC($_POST['dbuname'])));
$mm->setRewrite('XOOPS_DB_PASS', trim($myts->stripSlashesGPC($_POST['dbpass'])));
$mm->setRewrite('XOOPS_DB_NAME', trim($myts->stripSlashesGPC($_POST['dbname'])));
$mm->setRewrite('XOOPS_DB_PCONNECT', intval($_POST['db_pconnect']));
$mm->setRewrite('XOOPS_GROUP_ADMIN', 1);
$mm->setRewrite('XOOPS_GROUP_USERS', 2);
$mm->setRewrite('XOOPS_GROUP_ANONYMOUS', 3);
if( defined('_INSTALL_DBCHARSET') && _INSTALL_DBCHARSET ){
$mm->setRewrite('XOOPS_DB_CHARSET', trim($myts->stripSlashesGPC(_INSTALL_DBCHARSET)));
}
// Check if XOOPS_CHECK_PATH should be initially set or not
$xoopsPathTrans = isset($_SERVER['PATH_TRANSLATED']) ? $_SERVER['PATH_TRANSLATED'] : $_SERVER['SCRIPT_FILENAME'];
if ( DIRECTORY_SEPARATOR != '/' ) {
// IIS6 doubles the \ chars
$xoopsPathTrans = str_replace( strpos( $xoopsPathTrans, '\\\\', 2 ) ? '\\\\' : DIRECTORY_SEPARATOR, '/', $xoopsPathTrans);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -