0byt3m1n1-V2
Path:
/
home
/
magalijoj
/
www
/
blog
/
admin
/
install
/
[
Home
]
File: wizard.php
<?php # ***** BEGIN LICENSE BLOCK ***** # This file is part of DotClear. # Copyright (c) 2005 Olivier Meunier and contributors. All rights # reserved. # # DotClear 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. # # DotClear 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 DotClear; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # ***** END LICENSE BLOCK ***** if (isset($_SERVER['DC_RC_PATH'])) { define('DC_RC_PATH',$_SERVER['DC_RC_PATH']); } elseif (isset($_SERVER['REDIRECT_DC_RC_PATH'])) { define('DC_RC_PATH',$_SERVER['REDIRECT_DC_RC_PATH']); } else { define('DC_RC_PATH',dirname(__FILE__).'/../../inc/config.php'); } # ClearBricks and DotClear classes auto-loader if (@is_dir('/usr/lib/clearbricks')) { define('CLEARBRICKS_PATH','/usr/lib/clearbricks'); } elseif (is_dir(dirname(__FILE__).'/../../inc/clearbricks')) { define('CLEARBRICKS_PATH',dirname(__FILE__).'/../../inc/clearbricks'); } elseif (isset($_SERVER['CLEARBRICKS_PATH']) && is_dir($_SERVER['CLEARBRICKS_PATH'])) { define('CLEARBRICKS_PATH',$_SERVER['CLEARBRICKS_PATH']); } if (!defined('CLEARBRICKS_PATH') || !is_dir(CLEARBRICKS_PATH)) { exit('No clearbricks path defined'); } require CLEARBRICKS_PATH.'/_common.php'; # Loading locales for detected language $dlang = http::getAcceptLanguage(); if ($dlang) { l10n::init(); l10n::set(dirname(__FILE__).'/../../locales/'.$dlang.'/main'); } if (is_file(DC_RC_PATH)) { exit(printf(__('The file <strong>%s</strong> already exists. If you need to reset any of the configuration items in this file, please delete it first or you may <a href="%s">continue to install</a>.'), DC_RC_PATH,'index.php')); } $DBDRIVER = !empty($_POST['DBDRIVER']) ? $_POST['DBDRIVER'] : 'mysql'; $DBHOST = !empty($_POST['DBHOST']) ? $_POST['DBHOST'] : ''; $DBNAME = !empty($_POST['DBNAME']) ? $_POST['DBNAME'] : ''; $DBUSER = !empty($_POST['DBUSER']) ? $_POST['DBUSER'] : ''; $DBPASSWORD = !empty($_POST['DBPASSWORD']) ? $_POST['DBPASSWORD'] : ''; $DBPREFIX = !empty($_POST['DBPREFIX']) ? $_POST['DBPREFIX'] : 'dc_'; if (!empty($_POST)) { try { # Tries to connect to database try { $con = dbLayer::init($DBDRIVER,$DBHOST,$DBNAME,$DBUSER,$DBPASSWORD); } catch (Exception $e) { throw new Exception('<p>'.__('Unable to connect to database, check your parameters.').'</p>'); } # Checks system capabilites require dirname(__FILE__).'/check.php'; if (!dcSystemCheck($con,$_e)) { $can_install = false; throw new Exception('<p>'.__('DotClear cannot be installed.').'</p><ul><li>'.implode('</li><li>',$_e).'</li></ul>'); } # Check if dotclear is already installed $schema = dbSchema::init($con); if (in_array($DBPREFIX.'version',$schema->getTables())) { throw new Exception(__('DotClear is already installed.')); } # Does config.php.in exist? $config_in = dirname(__FILE__).'/../../inc/config.php.in'; if (!is_file($config_in)) { throw new Exception(sprintf(__('File %s does not exist.'),$config_in)); } # Can we write config.php if (!is_writable(dirname(DC_RC_PATH))) { throw new Exception(sprintf(__('Cannot write %s file.'),DC_RC_PATH)); } # Creates config.php file $full_conf = file_get_contents($config_in); writeConfigValue('DC_DBDRIVER',$DBDRIVER,$full_conf); writeConfigValue('DC_DBHOST',$DBHOST,$full_conf); writeConfigValue('DC_DBUSER',$DBUSER,$full_conf); writeConfigValue('DC_DBPASSWORD',$DBPASSWORD,$full_conf); writeConfigValue('DC_DBNAME',$DBNAME,$full_conf); writeConfigValue('DC_DBPREFIX',$DBPREFIX,$full_conf); $admin_url = preg_replace('%install/wizard.php$%','',$_SERVER['REQUEST_URI']); writeConfigValue('DC_ADMIN_URL',http::getHost().$admin_url,$full_conf); writeConfigValue('DC_MASTER_KEY',md5(uniqid()),$full_conf); $fp = @fopen(DC_RC_PATH,'wb'); if ($fp === false) { throw new Exception(sprintf(__('Cannot write %s file.'),DC_RC_PATH)); } fwrite($fp,$full_conf); fclose($fp); chmod(DC_RC_PATH, 0666); $con->close(); http::redirect('index.php?wiz=1'); } catch (Exception $e) { $err = $e->getMessage(); } } function writeConfigValue($name,$val,&$str) { $val = str_replace("'","\'",$val); $str = preg_replace('/(\''.$name.'\')(.*?)$/ms','$1,\''.$val.'\');',$str); } header('Content-Type: text/html; charset=UTF-8'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Language" content="en" /> <meta name="MSSmartTagsPreventParsing" content="TRUE" /> <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" /> <meta name="GOOGLEBOT" content="NOSNIPPET" /> <title>DotClear Install Wizard</title> <style type="text/css"> @import url(../style/default.css); </style> </head> <body id="dotclear-admin" class="install"> <div id="content"> <?php echo '<h1>'.__('Dotclear installation wizard').'</h1>'; if (!empty($err)) { echo '<div class="error"><p><strong>'.__('Errors:').'</strong></p>'.$err.'</div>'; } echo '<h2>'.__('System information').'</h2>'. '<p>'.__('Please provide the following information needed to create your configuration file.').'</p>'. '<form action="wizard.php" method="post">'. '<p><label class="required" title="'.__('Required field').'">'.__('Database type:').' '. form::combo('DBDRIVER',array('MySQL'=>'mysql','PostgreSQL'=>'pgsql'),$DBDRIVER).'</label></p>'. '<p><label>'.__('Database Host Name:').' '. form::field('DBHOST',30,255,html::escapeHTML($DBHOST)).'</label></p>'. '<p><label>'.__('Database Name:').' '. form::field('DBNAME',30,255,html::escapeHTML($DBNAME)).'</label></p>'. '<p><label>'.__('Database User Name:').' '. form::field('DBUSER',30,255,html::escapeHTML($DBUSER)).'</label></p>'. '<p><label>'.__('Database Password:').' '. form::password('DBPASSWORD',30,255).'</label></p>'. '<p><label class="required" title="'.__('Required field').'">'.__('Database Tables Prefix:').' '. form::field('DBPREFIX',30,255,html::escapeHTML($DBPREFIX)).'</label></p>'. '<p><input type="submit" value="'.__('save').'" /></p>'. '</form>'; ?> </div> </body> </html>
©
2018.