📄 install.php
字号:
<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
@set_time_limit(0);
set_magic_quotes_runtime(0);
if(!@ini_get('register_globals') || !get_magic_quotes_gpc()) {
@extract($_POST,EXTR_SKIP);
@extract($_GET,EXTR_SKIP);
}
!$_POST && $_POST=array();
!$_GET && $_GET=array();
foreach($_POST as $_key=>$_value) {
!ereg("^\_",$_key) && $$_key=$_POST[$_key];
}
foreach($_GET as $_key=>$_value) {
!ereg("^\_",$_key) && $$_key=$_GET[$_key];
}
define('D_P',__FILE__ ? dirname(__FILE__).'/' : './');
define('R_P',D_P);
define('DUOXUN','OK');
include(R_P.'install_lang.php');
$basename="install.php";
if(!$step){
if(is_writable(R_P.'template/duoxun/admin') && is_writable(R_P.'template/duoxun')) {
$duoxun_licence=readover(R_P.'licence.txt');
$duoxun_licence=str_replace(' ',' ',nl2br($duoxun_licence));
include(R_P.'install_htm.php');exit;
} else {
die('<b>Before install ,you must set dir( template/duoxun/admin && template/duoxun )
writeable mode(777)</b><br><br>
<b>You Can Get Help In</b>:<br><a target=_blank href=http://www.duoxun.com><b>
http://www.duoxun.com</b></a>');
}
} elseif($step==2) {
$content=readover(R_P."/install_duoxun.sql");
$content=preg_replace("/{#(.+?)}/eis",'$lang[\\1]',$content);
writeover(R_P."include/duoxun.sql",$content);
include(R_P.'include/config.php');
$check=1;
$correct='......<font color="#0000EE">OK</font>';
$incorrect=$lang['777_test'];
$uncorrect=$lang['no_file'];
$d_check=array(
'include/config.php',
'cache',
'upload'
);
if($fp=@fopen(R_P.'test.txt',"wb")) {
$state=$correct;
fclose($fp);
} else {
$state=$lang['777_test'].$lang['no_write'];
}
$count=count($d_check);
for($i=0;$i<$count;$i++) {
if(!file_exists($d_check[$i])) {
$d_check[$i].=$uncorrect;$check=0;
} elseif(is_writable(R_P.$d_check[$i])) {
$d_check[$i].=$correct;
} else {
$d_check[$i].=$incorrect;$check=0;
}
}
$check && @unlink(R_P.'test.txt');
include('install_htm.php');exit;
} elseif($step==3) {
$check=1;
if(!$password || $password != $password_check) {
$check=0;
}
if($check) {
$showpwd=$password;
$writepassword=md5($password);
$writetofile=
"<?php
/**
* 以下变量需根据您的服务器说明档修改
*/
\$dbhost = '$SERVER'; // 数据库服务器
\$dbuser = '$SQLUSER'; // 数据库用户名
\$dbpw = '$SQLPASSWORD'; // 数据库密码
\$dbname = '$SQLNAME'; // 数据库名
\$DUOXUN = '$SQLZUI'; //表区分符
\$pconnect = 0; //是否持久连接
/**
* 网站创始人,拥有网站所有权限
*/
\$manager='$INSTALL_NAME'; //管理员用户名
\$manager_pwd='$writepassword'; //管理员密码
".'?>';
writeover(R_P.'include/config.php',$writetofile);
}
include(R_P.'include/conn.php');
connect();
if(!@mysql_select_db($dbname)) {
mysql_query("CREATE DATABASE $dbname");
mysql_error() && exit($lang['no_database']);
}
mysql_select_db($dbname);
$query=query("SHOW TABLES LIKE '".$DUOXUN."members'");
while($TABLE=fetch_array($query,MYSQL_NUM)) {
$D_exists=$TABLE[0]==$DUOXUN.'members' ? 1 : 0;
}
$lang['have_install']=str_replace('$dbname',$dbname,$lang['have_install']);
include(R_P.'install_htm.php');exit;
} elseif($step==4){
include(R_P.'include/conn.php');
connect();
if(!@mysql_select_db($dbname)) {
mysql_query("CREATE DATABASE $dbname");
mysql_error() && exit($lang['no_database']);
}
mysql_select_db($dbname);
$sql=readover(R_P."include/duoxun.sql");
creat_table($sql);
$timestamp=time();
$writepwd=md5($password);
update("INSERT INTO duoxun_members (username,password,email,groupid,gender,regdate) VALUES ('$manager','$manager_pwd','$adminemail','1','','$timestamp')");
if(!($REQUEST_URI=$_SERVER['REQUEST_URI'])){
$REQUEST_URI=$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
}
$url='http://'.$_SERVER['HTTP_HOST'].substr($REQUEST_URI,0,strrpos($REQUEST_URI,'/'));
include('install_htm.php');
$timestamp=base64_encode(time());
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
$onlineip=preg_replace("/^([\d\.]+).*/", "\\1", $onlineip);
$url_l=base64_encode($url);
$onlineip=base64_encode($onlineip);
echo "<script language=\"JavaScript\" src=\"http://www.duoxun.com/stats.php?url=$url_l&ip=$onlineip&time=$timestamp\"></script>";
exit;
} elseif($step==5){
include(R_P.'include/conn.php');
connect();
mysql_select_db($dbname);
$hash=confuse();
query("UPDATE duoxun_settings SET value='$hash' WHERE name='hash'");
query("UPDATE duoxun_settings SET value='$url' WHERE name='url'");
settings();
links();
templates();
if(!is_writeable(R_P.'install.php')){
$unlinkerror='<tr><td align=left align=middle colspan=2> '.$lang['del_install'].'</td></tr>';
}
include(R_P.'install_htm.php');
if(@unlink(R_P.'install.php')){
@unlink(R_P.'install_htm.php');
@unlink(R_P."include/duoxun.sql");
@unlink(R_P.'install_lang.php');
@unlink(R_P."install_duoxun.sql");
}
exit;
}
function creat_table($sql){
global $installinfo,$DUOXUN,$lang;
$sqlarray=array();
$sql=str_replace("\r",'',$sql);
$sqlarray=explode(";\n",$sql);
foreach($sqlarray as $query){
$query=trim($query);
if($query){
$query=trim(str_replace("\n",'',$query));
query($query);
if(strpos($query,'CREATE TABLE') !==false) {
$name=substr($query,13,strpos($query,'(')-13);
$c_name=str_replace('duoxun_',$DUOXUN,$name);
$installinfo.='<font color="#0000EE">'.$lang['creat_table'].'</font>'.$c_name.' ... <font
color="#0000EE">'.$lang['success'].'</font><br>';
}
}
}
}
function settings() {
connect();
select_db();
$query=query("SELECT * FROM duoxun_settings");
$settings="<?php\r\n\$set=array(\r\n";
while(@extract(db_cv(fetch_array($query)))) {
$name=stripslashes(key_cv($name));
$settings.="\t'$name'=>'$value',\r\n";
}
$settings.=");\r\n?>";
writeover('cache/set.php',$settings);
}
function links() {
connect();
select_db();
$query=query("SELECT * FROM duoxun_links ORDER BY displayorder");
while(@extract(db_cv(fetch_array($query)))) {
if($logo) {
$link.="<a href=\"$url\" target=_blank><img src=\"$logo\" alt=\"$descrip\" width=\"88\" height=\"31\"></a>";
} else {
$link2.="<a href=\"$url\" target=\"_blank\" title=\"$descrip\">[$name]</a>";
}
}
$link2&&$link=$link2.'<br>'.$link;
$cache="<?php\r\n\$link='$link';\r\n?>";
writeover('cache/link.php',$cache);
}
function templates() {
require_once(R_P.'cache/set.php');
connect();
select_db();
$query=query("SELECT * FROM duoxun_templates WHERE templateid={$set['templateid']}");
while(@extract(db_cv(fetch_array($query)))) {
$templatecontent="<?php
\$templateid='$templateid';
\$name='$name';
\$charset='$charset';
\$tplpath='$tplpath';
\$imgpath='$imgpath';
\?>";
writeover(R_P.'cache/template.php',str_replace("\?>","?>",$templatecontent));
}
}
function db_cv($array) {
if(is_array($array)) {
foreach($array as $key=>$value) {
$array[$key]=str_replace(array("\\","'"),array("\\\\","\'"),$value);
}
}
return $array;
}
function key_cv($key) {
$key=str_replace(array(';','\\','/','(',')','$'),'',$key);
return $key;
}
function readover($filename,$method="rb") {
if($handle=@fopen($filename,$method)) {
flock($handle,LOCK_SH);
$filedata=@fread($handle,filesize($filename));
fclose($handle);
}
return $filedata;
}
function confuse(){
$rand='0123%^&*45ICV%^&*B6789qazw~!@#$sxedcrikolpQWER%^&*TYUNM';
mt_srand((double)microtime() * 1000000);
for($i=0;$i<10;$i++){
$code.=$rand[mt_rand(0,strlen($rand))];
}
return $code;
}
function writeover($filename,$data,$method="rb+"){
@touch($filename);
if($handle=@fopen($filename,$method)){
flock($handle,LOCK_EX);
fputs($handle,$data);
if($method=="rb+") ftruncate($handle,strlen($data));
fclose($handle);
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -