|
<?php
|
|
/**
|
|
* @package uForum
|
|
* @file install/index.php
|
|
* @version $Id$
|
|
* @copyright 2007-2010 (c) PioDer <[email protected]>
|
|
* @link http://www.pioder.pl/
|
|
* @license see LICENSE.txt
|
|
**/
|
|
define('IN_uF',true);
|
|
require('./../config.php');
|
|
require('./../includes/constants.php');
|
|
require('./../includes/errors.php');
|
|
require('./../includes/db.php');
|
|
require('./functions_add.php');
|
|
require('./../admin/check_script_data.php');
|
|
|
|
if (ini_get('short_open_tag')==0)
|
|
{
|
|
die('<font color="red" size="4">Please enable <b>short_open_tag</b> in PHP configuration. Aborted!</font>');
|
|
}
|
|
|
|
if(get_magic_quotes_gpc())
|
|
{
|
|
die('<font color="red" size="4">Please disable <b>magic_quotes_gpc</b> in PHP configuration. Aborted!</font>');
|
|
}
|
|
|
|
if(ini_get('register_globals'))
|
|
{
|
|
die('<font color="red" size="4">Please disable <b>register_globals</b> in PHP configuration. Aborted!</font>');
|
|
}
|
|
$count =0;
|
|
for($i=0; $i<count($script_files);$i++)
|
|
{
|
|
$actual = check_size_md5($script_files[$i]);
|
|
$rule = $size_md5[$script_files[$i]];
|
|
if ($actual!=$rule)
|
|
{
|
|
$count +=1;
|
|
}
|
|
}
|
|
if (UF_INSTALLED)
|
|
{
|
|
header('Location: ../index.php');
|
|
}
|
|
if (!isset($_GET['page']))
|
|
{
|
|
header('Location: index.php?page=step1');
|
|
}
|
|
if(!isset($_COOKIE['lang']))
|
|
{
|
|
$_COOKIE['lang']='Polish';
|
|
}
|
|
if (@is_file('./../lngs/'.$_COOKIE['lang'].'/install.php'))
|
|
{
|
|
require('./../lngs/'.$_COOKIE['lang'].'/install.php');
|
|
}
|
|
$header = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title>µForum Installer</title>
|
|
<style type="text/css">
|
|
body
|
|
{
|
|
font-family: Verdana;
|
|
font-color: black;
|
|
font-size: 11px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="body">
|
|
<center>
|
|
<div align="center" style="width: 748px; background-color: #EBEBEB">
|
|
<table class="maintable" width="748">
|
|
<tr><td align="center" colspan="2"><font face="Verdana" style="font-size: 24pt"><b>'.$lng['install_header'].'</b></font></td></tr>';
|
|
switch($_GET['page'])
|
|
{
|
|
case 'step1':
|
|
{
|
|
if (isset($_POST['lang']))
|
|
{
|
|
setcookie('lang',$_POST['lang'], $_SERVER['REQUEST_TIME']+360000000);
|
|
header('Location: index.php?page=step2');
|
|
}
|
|
else
|
|
{
|
|
echo $header.'
|
|
<tr><td width="748" height="400" align="center">
|
|
<span class="fstandard"><b>Select a language:</b>
|
|
<form action="index.php?page=step1" method="POST">
|
|
<select style="width: 150px" onchange="this.form.submit()" name="lang">
|
|
<option value="Polish"> </option>
|
|
'.AddLangs(false).'
|
|
</select></td></tr></table></div></center></body></html>';
|
|
}
|
|
break;
|
|
}
|
|
case 'step2':
|
|
{
|
|
if (isset($_POST['accept']))
|
|
{
|
|
header('Location: index.php?page=step3');
|
|
}
|
|
else
|
|
{
|
|
echo $header.'
|
|
<tr><td align="center"><span class="fstandard"><b>'.$lng['licence'].'</b></td></tr>
|
|
<tr><td width="748" align="center">
|
|
<form action="index.php?page=step2" method="POST">
|
|
<iframe width="748" height="500" src="licence.html">
|
|
Sorry, you browser doesn\'t support frames</iframe>
|
|
<input type="submit" class="fbutton" value="'.$lng['accept_licence'].'"
|
|
<input type="hidden" name="accept">
|
|
</td></tr></table></div></body></html>';
|
|
}
|
|
break;
|
|
}
|
|
case 'step3':
|
|
{
|
|
if (isset($_POST['next']))
|
|
{
|
|
header('Location: index.php?page=step4');
|
|
}
|
|
else
|
|
{
|
|
$bad = 0;
|
|
if (!@is_writable($folders[0])) { $bad =+1; }
|
|
if (!@is_writable($folders[1])) { $bad =+1; }
|
|
if (!@is_writable($folders[2])) { $bad =+1; }
|
|
if (phpversion()<'4.3.10') { $bad=+1; }
|
|
if (mysql_get_client_info()<'4.1') { $bad =+1; }
|
|
if ($count>1) { $bad =+1; }
|
|
echo $header;
|
|
$skin=array(
|
|
'L.name'=>$lng['name'],
|
|
'L.value'=>$lng['value'],
|
|
'L.php_version'=>$lng['php_version'],
|
|
'PHP.version'=>phpversion(),
|
|
'PHP.value' => (phpversion()>='5.0.7') ? '<font color="green">OK</font>' : ' <font color="red">Error - No OK</font>',
|
|
'mySQL.version'=>mysql_get_client_info(),
|
|
'L.mySQL_version'=>$lng['mysql_version'],
|
|
'mySQL.value'=>(mysql_get_client_info()>='4.1') ? '<font color="green">OK</font>' : ' <font color="red">Error - No OK</font>',
|
|
'L.cat_name'=>$lng['catalog'],
|
|
'cat1.name'=> $folders[0],
|
|
'cat1.value'=> (@is_writable($folders[0])) ? '<font color="green">'.$lng['is_writable'].' - OK</font>' : '<font color="red">'.$lng['not_writable'].' Error - No OK</font>',
|
|
'cat2.name'=> $folders[1],
|
|
'cat2.value'=> (@is_writable($folders[1])) ? '<font color="green">'.$lng['is_writable'].' - OK</font>' : '<font color="red">'.$lng['not_writable'].' Error - No OK</font>',
|
|
'cat3.name'=> $folders[2],
|
|
'cat3.value'=> (@is_writable($folders[2])) ? '<font color="green">'.$lng['is_writable'].' - OK</font>' : '<font color="red">'.$lng['not_writable'].' Error - No OK</font>',
|
|
'successfully' => ($count <1) ? '<font color="green">'.$lng['files_is_good'].' ('.count($script_files).')</font>' : '<font color="red">'.$lng['files_not_good'].' ('.$count.')</font>'
|
|
);
|
|
require('./tpls/install_check_script.tpl');
|
|
for($i=0; $i<count($script_files);$i++)
|
|
{
|
|
$actual = check_size_md5($script_files[$i]);
|
|
$rule = $size_md5[$script_files[$i]];
|
|
if ($actual!=$rule)
|
|
{
|
|
$skin=array(
|
|
'L.sum_actual'=>$lng['actual_sum'],
|
|
'sum_actual'=>$actual,
|
|
'L.invalid_md5sum'=>$lng['invalid_md5sum'].' ('.substr($script_files[$i], strrpos($script_files[$i], '/') + 1, strlen($script_files[$i])).')'
|
|
);
|
|
require('./tpls/invalidfile_body.tpl');
|
|
}
|
|
}
|
|
echo '<form action="index.php?page=step3" method="POST"><input type="hidden" name="next">';
|
|
if ($bad>0)
|
|
{
|
|
echo '<input type="button" class="fbutton" value="'.$lng['no_next_page'].'"><br>';
|
|
echo '<a href="index.php?page=step4">'.$lng['click_next'].'</a>';
|
|
}
|
|
else
|
|
{
|
|
echo '<input type="submit" class="fbutton" value="'.$lng['next_page'].'">';
|
|
}
|
|
echo '</form>';
|
|
}
|
|
break;
|
|
|
|
}
|
|
case 'step4':
|
|
{
|
|
if (isset($_POST['mysql_host'],$_POST['database'],$_POST['mysql_prefix'],$_POST['mysql_user'],$_POST['mysql_pass']))
|
|
{
|
|
$open = @fopen('../config.php','a+');
|
|
$config_file = @fread($open,@filesize('../config.php'));
|
|
$config_file = str_replace('%host%',strip_tags($_POST['mysql_host']),$config_file);
|
|
$config_file = str_replace('%user%',strip_tags($_POST['mysql_user']),$config_file);
|
|
$config_file = str_replace('%pass%',strip_tags($_POST['mysql_pass']),$config_file);
|
|
$config_file = str_replace('%dbname%',strip_tags($_POST['database']),$config_file);
|
|
$config_file = str_replace('%dbprefix%',strip_tags($_POST['mysql_prefix']),$config_file);
|
|
$connect = @mysql_connect($_POST['mysql_host'],$_POST['mysql_user'],$_POST['mysql_pass']) or message_die(GENERAL,'Could not connect to database server. Error with installation!',@mysql_error());
|
|
@fwrite(@fopen('../config.php','w'),$config_file) or message_die(GENERAL,'Could not write config file. Error with installation!','');
|
|
@mysql_query("SET NAMES 'utf8'",$connect);
|
|
@mysql_select_db($_POST['database'],$connect) or message_die(GENERAL,'Could not connect to database. Error with installation!',@mysql_error());
|
|
require('./../includes/sql_parse.php');
|
|
$sql = @fread(@fopen('uf_tables.sql','r'),@filesize('uf_tables.sql'));
|
|
$sql = preg_replace('/uf_/', $_POST['mysql_prefix'], $sql);
|
|
$sql = remove_remarks($sql);
|
|
$sql = split_sql_file($sql);
|
|
for ($i=0;$i<count($sql);$i++)
|
|
{
|
|
DataBase::sql_query($sql[$i],'ERROR','Error of SQL Query: '.$sql[$i].' Error with install script!');
|
|
}
|
|
DataBase::sql_query("UPDATE `".$_POST['mysql_prefix']."config` SET `value`='".$_SERVER['REQUEST_TIME']."' WHERE `name`='date_install'",GENERAL,'Could not update date install information');
|
|
$patch = substr('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'],0 ,-strlen('install/index.php?page=step4'));
|
|
DataBase::sql_query("UPDATE `".$_POST['mysql_prefix']."config` SET `value`='".$patch."' WHERE `name`='forumpatch'",GENERAL,'Could not update date install information');
|
|
header('Location: index.php?page=step5');
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
if (!isset($_POST['database'])) { $_POST['database']=''; }
|
|
if (!isset($_POST['mysql_user'])) { $_POST['mysql_user']=''; }
|
|
if (!isset($_POST['mysql_pass'])) { $_POST['mysql_pass']=''; }
|
|
}
|
|
echo $header;
|
|
$skin = array(
|
|
'L.mysql_host'=>$lng['mysql_host'],
|
|
'L.mysql_user'=>$lng['mysql_user'],
|
|
'L.database'=>$lng['db_name'],
|
|
'L.mysql_pass'=>$lng['mysql_pass'],
|
|
'L.mysql_prefix'=>$lng['mysql_prefix'],
|
|
'L.submit'=>$lng['start_install'],
|
|
);
|
|
require('./tpls/install_step4.tpl');
|
|
break;
|
|
}
|
|
case 'step5':
|
|
{
|
|
echo $header.'<tr><td class="fitem" align="center"><span class="fstandard">'.$lng['install_complete'].'</span></td></tr></table><meta http-equiv="refresh" content="1.5; url=index.php?page=step6"></body></html>';
|
|
break;
|
|
}
|
|
case 'step6':
|
|
{
|
|
DataBase::db_connect();
|
|
if (isset($_POST['user_name'],$_POST['password'],$_POST['retype_password'],$_POST['email']))
|
|
{
|
|
if ($_POST['password']==$_POST['retype_password'])
|
|
{
|
|
if (ereg("^.+@.+\..+$", $_POST['email']))
|
|
{
|
|
$sql = "UPDATE `".USERS_TABLE."` SET
|
|
`nick`='".htmlspecialchars($_POST['user_name'])."',
|
|
`pass`='".md5(htmlspecialchars($_POST['password']))."',
|
|
`email`='".htmlspecialchars($_POST['email'])."',
|
|
`lang`= '".$_COOKIE['lang']."',
|
|
`regdate`='".$_SERVER['REQUEST_TIME']."',
|
|
`lastvisit`='".$_SERVER['REQUEST_TIME']."'
|
|
WHERE `u_id`='1';";
|
|
DataBase::sql_query($sql,CRITICAL,'Could not update user. Error with install script!');
|
|
$sql = "UPDATE `".POSTS_TABLE."` SET `ptime`='".$_SERVER['REQUEST_TIME']."' WHERE `p_id`='1'";
|
|
DataBase::sql_query($sql,CRITICAL,'Could not update post. Error with install script!');
|
|
$sql = "UPDATE `".TOPICS_TABLE."` SET `lastpost_time`='".$_SERVER['REQUEST_TIME']."' WHERE `t_id`='1'";
|
|
DataBase::sql_query($sql,CRITICAL,'Could not update topic. Error with install script!');
|
|
header('Location: index.php?page=step7');
|
|
}
|
|
else
|
|
{
|
|
alert($lng['invalid_email']);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
alert($lng['invalid_passwords']);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!isset($_POST['user_name'])) { $_POST['user_name'] = ''; }
|
|
if (!isset($_POST['email'])) { $_POST['email'] = ''; }
|
|
$_POST['password'] = '';
|
|
$_POST['retype_password'] = '';
|
|
}
|
|
echo $header;
|
|
$skin = array(
|
|
'L.user_name'=>$lng['user_name'],
|
|
'L.password'=>$lng['password'],
|
|
'L.retype_password'=>$lng['retype_password'],
|
|
'L.email'=>$lng['email'],
|
|
'L.submit'=>$lng['save']
|
|
);
|
|
require('./tpls/install_step6.tpl');
|
|
break;
|
|
}
|
|
case 'step7':
|
|
{
|
|
$open = @fopen('../config.php','a+');
|
|
$config_file = @fread($open,@filesize('../config.php'));
|
|
$config_file = str_replace('false','true',$config_file);
|
|
@fwrite(@fopen('../config.php','w'),$config_file) or message_die(GENERAL,'Could not write config file. Error with installation!','');
|
|
echo $header.'<tr><td class="fitem" align="center"><span class="fstandard">'.$lng['info_2'].'</span></td></tr></table><meta http-equiv="refresh" content="4; url=../index.php"></body></html>';
|
|
break;
|
|
}
|
|
}
|
|
?>
|